Project1

标题: 菜单中根据光标位置描绘立绘 [打印本页]

作者: shencao    时间: 2019-4-10 16:18
标题: 菜单中根据光标位置描绘立绘
首先说本人脚本小白,没有学过,只是能照着现成脚本改改的程度XD
如果思路奇葩请不要介意~

我想要在菜单增加角色立绘窗口,效果是在MenuStatus光标停留在角色项上的时候,立绘窗口即时显示对应角色的立绘。

不管怎样,反正先新建个窗口放立绘嘛~ 我建好了。
描绘立绘的内容是:
draw_actor_picture(actor, 0, 0, true)
这个draw_actor_picture是一个立绘脚本里的,在游戏里其他地方也要用,这里直接用了。(不如说我就希望直接用,后续操作方便)
actor是$game_actors[id],我之前想做显示领队立绘,actor = $game_party.leader,整队确定之后刷新这个窗口,就ok了,这个程度我还能自己搞定。
但我又想要光标选择的时候就改变立绘,这对我来说就超纲了……

1)如何取得光标位置的actor?
因为我也需要整队功能,角色顺序会变,用index直接指定似乎不行(没试,就想了下,并想不通(喂)
感觉上要从光标位置index取得对应的角色,这,我完全不会写_(′ཀ`」 ∠)_

2)以及如何能在光标移动的时候刷新这个窗口呢?
完全没找到地方……

纠结很久,毫无办法。
想想果然自己是搞不定了,还是来论坛求助,希望大佬看到我~


作者: cinderelmini    时间: 2019-4-10 16:56
直白点的方法,直接在Scene里的update里监视和获取MenuStatus窗口的index(比如@status_window.index),获取角色就用$game_party.members[前面get到的那个index],
然后直接就用获取到的角色传给立绘窗口去refresh。
也就是说,立绘窗口需要设置个refresh方法,然后给个参数作为角色数据传递,
然后在refresh里用传来的角色 draw_actor_picture(actor, 0, 0, true) 。

此外可以在方法内设置个记录角色的变量,于是当refresh开始执行时,判定记录的角色跟新传来的角色是否同一个,
同一个的情况就不刷新立绘,节约资源。
作者: 百里_飞柳    时间: 2019-4-10 18:26
本帖最后由 百里_飞柳 于 2019-4-10 21:46 编辑

那些带选择的窗口都有一个index方法获取当前光标的位置,从0开始

你可以给立绘窗口传入其他窗口的index与其他信息,然后判定下index是否变化了,如果变化就重绘



  1. class B
  2.   def a(window_a)
  3.     @a = window_a
  4.   end
  5. end
复制代码


然后在Scene里面,既有@window_a又有@window_b的地方,加上
  1. @window_b.a( @window_a )
复制代码

这样就能在窗口B里获取窗口A的信息了,比如 @a.index 就能获取当前窗口A中的光标的位置
作者: shencao    时间: 2019-4-12 14:38
我至少搞懂了一件事,就是光标选择的index,就等于是成员的顺序,就是一样的哇整队了也是一样的哇(这个之前我都没整明白XD
不过怎么传入其他窗口信息还是不懂,最后抱ls大佬大腿解决了(。)
感谢所有大佬(飞吻~)





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