查看: 1607|回复: 1

[已经解决] 想问一问Window_Message和$game_message工作的逻辑

[复制链接]
梦石
0
星屑
1539
在线时间
12 小时
注册时间
2014-11-24
回帖
1
发表于 2015-10-2 16:59:01 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 Cichol 于 2015-10-2 17:15 编辑

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

[pre lang="ruby"]
def new_page(text, pos)
    contents.clear
    draw_face($game_message.face_name, $game_message.face_index, 0, 0)
    reset_font_settings
    pos[:x] = new_line_x
    pos[:y] = 0
    pos[:new_x] = new_line_x
    pos[:height] = calc_line_height(text)
    clear_flags
end
[/pre]

我想添加属性的流程大概是这样的:
[pre lang="ruby"]
    $game_message.face_name = 'Actor1'
    $game_message.face_index = 0
    $game_message.add "12345678901234567890123456789012345678901234567890"
    $game_message.face_index = 1
    $game_message.new_page
    $game_message.add "ok"
[/pre]
但是由于all_texts是在Window_Message#update时取出来的,在获取的时候face_index已经被覆写了,
$game_message的face_index到底是怎么去使用的?

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

先谢谢~

点评

没装vx无能为力,但你可以去看看interpreter,正常调用是怎么调用的。  发表于 2015-10-2 19:31
梦石
0
星屑
1539
在线时间
12 小时
注册时间
2014-11-24
回帖
1
 楼主| 发表于 2015-10-3 15:50:22 | 显示全部楼层
我才发现发错区了。。这是VX区,这个问题我最终打算自己实现一个Window类,不用内置的game_message了
结贴
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部