Project1

标题: 关于游戏指令窗口选框的问题 [打印本页]

作者: 冰舞蝶恋    时间: 2010-8-30 21:03
标题: 关于游戏指令窗口选框的问题
本帖最后由 冰舞蝶恋 于 2010-8-31 22:30 编辑

之前发了一个帖子
然后竟然被小幽屏蔽了
还说跟什么搞笑艺人有关!?
搞不懂啦~
请问能否有办法让选项窗口选中的文字不是直接读取皮肤文件而是描边字?貌似是行得通的,但个人不太会改脚本,所以想求各位帮帮忙……拜托了……
之前看到沉影的这个脚本http://rpg.blue/forum.php?mod=viewthread&tid=96093
是否可以根据这个做一些改编呢?

谢谢。
作者: wangswz    时间: 2010-8-30 21:21
。。。。
http://rpg.blue/forum.php?mod=vi ... 1%E5%85%89%E5%AD%97
draw_stroke_text
替换需要的模块中的draw_text
作者: 冰舞蝶恋    时间: 2010-8-30 21:31
本帖最后由 冰舞蝶恋 于 2010-8-30 21:34 编辑

开始一直没搞懂怎么用= =
现在还是不会……
作者: trentswd    时间: 2010-8-31 14:35
好久没有看见大那个啥了,你是不是用了他们的汉化版
windowselect里面的选择框似乎是封装在Window类里面的,用起来比较方便。如果按照你的要求的话,要么重新绘制window的contents,要么就新加一个sprite,无论哪个都要重新draw_text,效率都会降低。而且真要写起来麻烦也少不了,所以如果不是非常必要建议不要这么做
我没有时间写,等好人出现吧……
稍微整理一下思路,在window_command的update_cursor里面,把self.cursor_rect = rect改成清空contents里面的rect,然后重新写该项目的描边文字。改变光标的时候,注意重画窗口的contents,以免上次的描边字残留。
作者: 冰舞蝶恋    时间: 2010-8-31 16:40
苍天啊!大地啊!如果好人再不出现的话!我就结贴了啊!
作者: 水镜风生    时间: 2010-8-31 17:42
苍天啊!大地啊!原本以为是5分钟就能了结的事情,没想到判定选项有效度的部分硬是拖了我一小时= =
效果只适用于Window_Command类(没图标的那些选择窗口),话说我写完看到效果才发现MS以前看到某个日站已经有这样的脚本= =


有效选项


无效选项
  1. #==============================================================================
  2. # ■ Window_Command   捣鼓 by 水镜风生 (描边字部分出自沉影不器)
  3. #------------------------------------------------------------------------------
  4. #  一般的命令选择行窗口。
  5. #==============================================================================
  6. FONT_COLOR_ID = 1   # 描边颜色ID,请参考[显示文章]中\C[n]的颜色

  7. class Window_Command < Window_Selectable
  8.   #--------------------------------------------------------------------------
  9.   # ● 初始化对象 追加定义
  10.   #--------------------------------------------------------------------------
  11.   alias Mro_initialize initialize  
  12.   def initialize(width, commands, column_max = 1, row_max = 0, spacing = 32)
  13.     @enabled_list = []
  14.     Mro_initialize(width, commands, column_max, row_max, spacing)
  15.   end
  16.   #--------------------------------------------------------------------------
  17.   # ● 描绘项目  追加定义
  18.   #--------------------------------------------------------------------------
  19.   alias Mro_draw_item draw_item
  20.   def draw_item(index, enabled = true)
  21.     @enabled_list[index] = enabled
  22.     Mro_draw_item(index, @enabled_list[index])
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 更新
  26.   #--------------------------------------------------------------------------
  27.   def update
  28.     super
  29.     if @last_index != self.index
  30.       @last_index = self.index
  31.       for i in 0...@item_max
  32.         rect = item_rect(i)
  33.         self.contents.clear_rect(rect)
  34.         next if i == @old_index
  35.         draw_item(i, @enabled_list[i])
  36.       end
  37.        rect = item_rect(self.index)
  38.        self.contents.clear_rect(rect)
  39.       color = text_color(FONT_COLOR_ID)
  40.       draw_stroke_text(rect, @commands[@index], @enabled_list[@index], 0, color)
  41.     end
  42.   end
  43.   #--------------------------------------------------------------------------

  44.   # ○ 描边字

  45.   #--------------------------------------------------------------------------

  46.   def draw_stroke_text(rect, str, enabled = true, align = 0, color = nil)
  47.     x = rect.x
  48.     y = rect.y
  49.     width = rect.width
  50.     height = rect.height

  51.     # 准备字体

  52.     font_backup = self.contents.font.clone

  53.     if color

  54.       self.contents.font.color.red   = color.red

  55.       self.contents.font.color.green = color.green

  56.       self.contents.font.color.blue  = color.blue

  57.     end
  58.    

  59.     # 关闭默认阴影

  60.     self.contents.font.shadow = false

  61.     # 描绘边缘
  62.    
  63.     self.contents.font.color.alpha = enabled ? 255 : 128

  64.     self.contents.draw_text(x-1, y-1, width, height, str, align)

  65.     self.contents.draw_text(x-1, y+1, width, height, str, align)

  66.     self.contents.draw_text(x+1, y-1, width, height, str, align)

  67.     self.contents.draw_text(x+1, y+1, width, height, str, align)

  68.     self.contents.draw_text(x, y-1, width, height, str, align)

  69.     self.contents.draw_text(x, y+1, width, height, str, align)

  70.     self.contents.draw_text(x-1, y, width, height, str, align)

  71.     self.contents.draw_text(x+1, y, width, height, str, align)

  72.     # 描绘主文字

  73.    
  74.     self.contents.font.color = font_backup.color

  75.     self.contents.font.color.alpha = enabled ? 255 : 128

  76.     self.contents.draw_text(x, y, width, height, str, align)

  77.     # 还原默认字体

  78.     self.contents.font = font_backup

  79.   end
  80. end
复制代码

作者: 冰舞蝶恋    时间: 2010-8-31 22:29
本帖最后由 冰舞蝶恋 于 2010-11-2 20:03 编辑

好人辛苦了……不过发现有些BUG……所以……
应该给更多的广大群众用吧……
谢谢




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