| 赞 | 0 |
| VIP | |
| 好人卡 | |
| 积分 | 3 |
| 经验 | |
| 最后登录 | 2021-3-30 |
| 在线时间 | 57 小时 |
- 梦石
- 0
- 星屑
- 345
- 在线时间
- 57 小时
- 注册时间
- 2013-1-11
- 回帖
- 23
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
各位大佬好,我又来啦~
在大佬们的帮助下,上回的立绘上显示动画已经搞定了(但是不知道怎么把帖子改成“已经解决” )
现在我想在战斗时敌人的左上显示敌人受到的状态
自己参照Sprite_Battler乱写了一通脚本,但是运行的时候告诉我@enemy_icon.each {|sprite| sprite.update }里面的Game_Enemy元素没有update的方法
但是我看官方脚本Spriteset_Battle里update_enemies方法中的@enemy_sprites.each {|sprite| sprite.update }却可以使用,是我哪里写错了吗
附上脚本:
[pre lang="ruby"]
class Spriteset_Battle
#---------------------------------------------------------------------------
# * 初始化
#---------------------------------------------------------------------------
alias icon_initialize initialize
def initialize
icon_initialize
creat_enemy_icon
icon_update
end
#---------------------------------------------------------------------------
# * 创建精灵实例
#---------------------------------------------------------------------------
def creat_enemy_icon
@enemy_icon = $game_troop.members.select {|item| item.have_state?}
@enemy_icon.reverse.collect do |icon|
Sprite_EnemyState.new(@viewport1, icon)
end
end
#--------------------------------------------------------------------------
# * 释放
#--------------------------------------------------------------------------
alias icon_dispose dispose
def dispose
icon_dispose
dispose_enemy_icon
end
#---------------------------------------------------------------------------
# * 更新
#---------------------------------------------------------------------------
alias icon_update update
def update
icon_update
update_enemy_icon
end
#---------------------------------------------------------------------------
# * 释放icon
#---------------------------------------------------------------------------
def dispose_enemy_icon
@enemy_icon.each {|sprite| sprite.dispose }
end
#---------------------------------------------------------------------------
# * 更新icon
#---------------------------------------------------------------------------
def update_enemy_icon
@enemy_icon.each {|sprite| sprite.update } if @enemy_icon
end
end
class Sprite_EnemyState < Sprite_Battler
#---------------------------------------------------------------------------
# * 初始化
#---------------------------------------------------------------------------
def initialize(viewport, battler = nil)
super(viewport, battler)
end
#---------------------------------------------------------------------------
# * 释放
#---------------------------------------------------------------------------
def dispose
bitmap.dispose if bitmap
super
end
#---------------------------------------------------------------------------
# * 更新
#---------------------------------------------------------------------------
def update
super
if @use_sprite
update_icon_bitmap
else
self.bitmap = nil
@effect_type = nil
end
end
#---------------------------------------------------------------------------
# * 更新画面Icon
#---------------------------------------------------------------------------
def update_icon_bitmap
icons = (@battler.state_icons + @battler.buff_icons)[0, width / 24]
icons.each_with_index {|n, i| draw_enemy_icon(n, @battler.x - 20 * i, @battler.y - 20) }
end
# --------------------------------------------------------------------------
# * 绘制敌人icon
# --------------------------------------------------------------------------
def draw_enemy_icon(icon_index, x, y,enabled = true)
bw = Graphics.width + 48
bh = Font.default_size*3
bitmap = Bitmap.new(bw,bh)
icbitmap = Cache.system("Iconset")
rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
new_bitmap = bitmap.blt(x, y, icbitmap, rect, enabled ? 255 : translucent_alpha)
if bitmap != new_bitmap
self.bitmap = new_bitmap
init_visibility
end
end
end
class Game_Enemy
def have_state?
return true if @state != []
end
end
[/pre] |
|