Project1

标题: 想问一问Window_Message和$game_message工作的逻辑 [打印本页]

作者: Cichol    时间: 2015-10-2 16:59
标题: 想问一问Window_Message和$game_message工作的逻辑
本帖最后由 Cichol 于 2015-10-2 17:15 编辑

Window_Message的update会监听$game_message的text,于是我就直接通过给$game_message塞东西来显示文字,
不过我想在显示文字的时候添加一个说话人名字的窗口,这就需要把名字信息也加上。
本来想把名字作为$game_message的一个属性,也看到了下面的代码:

RUBY 代码复制
  1. def new_page(text, pos)
  2.     contents.clear
  3.     draw_face($game_message.face_name, $game_message.face_index, 0, 0)
  4.     reset_font_settings
  5.     pos[:x] = new_line_x
  6.     pos[:y] = 0
  7.     pos[:new_x] = new_line_x
  8.     pos[:height] = calc_line_height(text)
  9.     clear_flags
  10. end


我想添加属性的流程大概是这样的:
RUBY 代码复制
  1. $game_message.face_name = 'Actor1'
  2.     $game_message.face_index = 0
  3.     $game_message.add "12345678901234567890123456789012345678901234567890"
  4.     $game_message.face_index = 1
  5.     $game_message.new_page
  6.     $game_message.add "ok"

但是由于all_texts是在Window_Message#update时取出来的,在获取的时候face_index已经被覆写了,
$game_message的face_index到底是怎么去使用的?

还是说我应该改写$game_message.add,让每段text和头像/名字绑定起来?
要是能在$game_message.add之后阻塞执行等待Window_Message的显示好像也可以?利用Fiber的特性?

先谢谢~
作者: Cichol    时间: 2015-10-3 15:50
我才发现发错区了。。这是VX区,这个问题我最终打算自己实现一个Window类,不用内置的game_message了
结贴




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