Project1

标题: 如何解决文字阴影效果F12后的问题? [打印本页]

作者: 火焰卷轴    时间: 2018-1-9 23:20
标题: 如何解决文字阴影效果F12后的问题?
#======================================================================
# 脚本来自www.66rpg.com,使用请保留此信息
# 作者:SailCat;升级:柳柳;最后升级日期:2006年4月30日
#======================================================================
class Bitmap
  unless $OK
    alias sailcat_draw_text draw_text
    def draw_text(p1, p2, p3 = 0, p4 = 3, p5 = nil, p6 = 0, p9 = false, p7 = 3, p8 = nil)
      case p1
      when Numeric
        x = p1
        y = p2
        width = p3
        height = p4
        text = p5
        align = p6
        shadow_direction = p7
        shadow_color = p8
        if shadow_color.nil?
          shadow_color = Color.new(0, 0, 0, self.font.color.alpha * 0.99)
        end
      when Rect
        x = p1.x
        y = p1.y
        width = p1.width
        height = p1.height
        text = p2
        align = p3
        shadow_direction = p4
        shadow_color = p5
        if shadow_color.nil?
          shadow_color = Color.new(0, 0, 0, self.font.color.alpha * 0.99)
        end
      end
      if p9
        sailcat_draw_text(x, y, width, height, text, align)
        return
      end
      color_temp = self.font.color.clone
      if shadow_direction != 0
        self.font.color = shadow_color
        case shadow_direction
        when 1
          sailcat_draw_text(x-1, y+1, width, height, text, align)
        when 3
          sailcat_draw_text(x+1, y+1, width, height, text, align)
        when 7
          sailcat_draw_text(x-1, y-1, width, height, text, align)
        when 9
          sailcat_draw_text(x+1, y-1, width, height, text, align)
        end
        self.font.color = color_temp
      end
      $OK = true
      sailcat_draw_text(x, y, width, height, text, align)
    end
  end
end

F12之后报错,这问题可以解决吗
不要屏蔽F12这个方法
或者有没有更好的文字阴影脚本
作者: SailCat    时间: 2018-1-10 00:43
SEP Core插件应该可以满足你

节选:
RUBY 代码复制
  1. #==============================================================================
  2. # ■ Bitmap
  3. #------------------------------------------------------------------------------
  4. #   位图的增强功能,植入部分RGSS2的功能。
  5. #==============================================================================
  6. class Bitmap
  7.   #--------------------------------------------------------------------------
  8.   # ● 方法重定义
  9.   #--------------------------------------------------------------------------
  10.   unless method_defined?(:sailcat_sepcore_dispose)
  11.     alias sailcat_sepcore_draw_text draw_text
  12.   end
  13.   #--------------------------------------------------------------------------
  14.   # ● 获得描绘缓存
  15.   #--------------------------------------------------------------------------
  16.   def buffer
  17.     @buffer ||= Bitmap.new(width, height)
  18.   end
  19.   #--------------------------------------------------------------------------
  20.   # ● 清除缓存
  21.   #--------------------------------------------------------------------------
  22.   def clear_buffer
  23.     self.buffer.clear
  24.   end
  25.   #--------------------------------------------------------------------------
  26.   # ● 释放
  27.   #--------------------------------------------------------------------------
  28.   def dispose
  29.     sailcat_sepcore_dispose
  30.     @buffer.dispose if @buffer
  31.   end
  32.   #--------------------------------------------------------------------------
  33.   # ● 绘制带有阴影或描边的文字
  34.   #     args : 参数,写法同RGSS2
  35.   #       参数1:x, y, width, height, str[, align[, shadow_direction[, color]]]
  36.   #       参数2:rect, str[, align[, shadow_direction[, color]]]
  37.   #     shadow_direction : 阴影的方向(0/1/3/5/7/9),0取消,1/3/7/9四角,5描边
  38.   #     color : 阴影的颜色,不透明度会自动调整
  39.   #--------------------------------------------------------------------------
  40.   def draw_text(*args)
  41.     case args[0]
  42.     when Numeric
  43.       x, y, width, height, text, align, shadow_direction, shadow_color = args
  44.       align ||= 0
  45.       shadow_direction ||= 3
  46.       shadow_color ||= Color.new(0, 0, 0)
  47.       shadow_color.alpha = font.color.alpha * 160 / 255
  48.     when Rect
  49.       rect, text, align, shadow_direction, shadow_color = args
  50.       x = args[0].x
  51.       y = args[0].y
  52.       width = args[0].width
  53.       height = args[0].height
  54.       align ||= 0
  55.       shadow_direction ||= 3
  56.       shadow_color ||= Color.new(0, 0, 0)
  57.       shadow_color.alpha = font.color.alpha * 160 / 255
  58.     end
  59.     text = text.to_s unless text.is_a?(String)
  60.     color_temp = font.color.clone
  61.     if shadow_direction != 0
  62.       font.color = shadow_color
  63.       if shadow_direction == 5
  64.         buffer_rect = Rect.new(0, 0, width, height)
  65.         clear_buffer
  66.         buffer.font = font.clone
  67.         buffer.font.color = shadow_color
  68.         buffer.sailcat_sepcore_draw_text(buffer_rect, text, align)
  69.         blt(x - 1,y - 1, buffer, buffer_rect)
  70.         blt(x - 1,y + 1, buffer, buffer_rect)
  71.         blt(x + 1,y - 1, buffer, buffer_rect)
  72.         blt(x + 1,y + 1, buffer, buffer_rect)
  73.       else
  74.         a = shadow_direction % 6 == 1 ? -1 : 1
  75.         b = shadow_direction / 6 == 1 ? -1 : 1
  76.         sailcat_sepcore_draw_text(x + a, y + b, width, height, text, align)
  77.       end
  78.       font.color = color_temp
  79.     end
  80.     sailcat_sepcore_draw_text(x, y, width, height, text, align)
  81.   end
  82. end





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1