赞 | 45 |
VIP | 0 |
好人卡 | 0 |
积分 | 146 |
经验 | 0 |
最后登录 | 2024-11-21 |
在线时间 | 2196 小时 |
Lv4.逐梦者
- 梦石
- 0
- 星屑
- 14616
- 在线时间
- 2196 小时
- 注册时间
- 2019-1-24
- 帖子
- 1123
|
3楼
楼主 |
发表于 2020-4-6 14:56:08
|
只看该作者
本帖最后由 miantouchi 于 2020-4-6 15:01 编辑
根据你的提示,我先发下,我写的,已经成功建了4个窗口,接下来不太会弄了。
如果在 战斗场景调用@status_window.refresh还是一样的
我想把@status_window.refresh(@target)这样的形式传入进去。
就也是,目标是谁,就刷新谁的窗口
但是感觉把def refresh(target) ,这样定义加个参数有点怪怪的。
我这段是用数组的办法
- #==============================================================================
- # ■ Window_BattleStatus
- #------------------------------------------------------------------------------
- # 显示战斗画面同伴状态的窗口。
- #==============================================================================
- class Window_BattleStatus < Window_Base
- #--------------------------------------------------------------------------
- # ● 初始化对像
- #--------------------------------------------------------------------------
- def initialize
- super(0, 320, 640, 160)
- @w = []
- (0..$game_party.actors.size - 1).each do|i|
- @w[i] = Window_Base.new(320 - $game_party.actors.size * 80 + i*160, 100, 160, 160)
- @w[i].back_opacity = 0
- @w[i].contents = Bitmap.new(width - 32, height - 32)
- end
- self.contents = Bitmap.new(width - 32, height - 32)
- @actor = actor
- @level_up_flags = [false, false, false, false]
- refresh
- end
- #--------------------------------------------------------------------------
- # ● 释放
- #--------------------------------------------------------------------------
- def dispose
- super
- @w.each {|w|w.dispose}
- end
- #--------------------------------------------------------------------------
- # ● 设置升级标志
- # actor_index : 角色索引
- #--------------------------------------------------------------------------
- def level_up(actor_index)
- @level_up_flags[actor_index] = true
- end
- #--------------------------------------------------------------------------
- # ● 刷新
- #--------------------------------------------------------------------------
- def refresh
- (0...$game_party.actors.size).each {|i| @w[i].contents.clear}
- @item_max = $game_party.actors.size
- for i in 0...$game_party.actors.size
- actor = $game_party.actors[i]
- actor_x = 4#i * 160 + 4
- @w[i].draw_actor_name(actor, actor_x, 0)
- @w[i].draw_actor_hp(actor, actor_x, 32, 120)
- @w[i].draw_actor_sp(actor, actor_x, 64, 120)
- if @level_up_flags[i]
- @w[i].contents.font.color = normal_color
- @w[i].contents.draw_text(actor_x, 96, 120, 32, "LEVEL UP!")
- else
- @w[i].draw_actor_state(actor, actor_x, 96)
- end
- end
- end
- end
复制代码 |
|