设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2164|回复: 3
打印 上一主题 下一主题

[已经解决] 如何在敌人头上显示受到的状态呢

[复制链接]

Lv2.观梦者

梦石
0
星屑
345
在线时间
57 小时
注册时间
2013-1-11
帖子
33
跳转到指定楼层
1
发表于 2020-9-9 17:39:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
各位大佬好,我又来啦~
在大佬们的帮助下,上回的立绘上显示动画已经搞定了(但是不知道怎么把帖子改成“已经解决”

现在我想在战斗时敌人的左上显示敌人受到的状态
自己参照Sprite_Battler乱写了一通脚本,但是运行的时候告诉我@enemy_icon.each {|sprite| sprite.update }里面的Game_Enemy元素没有update的方法
但是我看官方脚本Spriteset_Battle里update_enemies方法中的@enemy_sprites.each {|sprite| sprite.update }却可以使用,是我哪里写错了吗


附上脚本:
RUBY 代码复制
  1. class Spriteset_Battle
  2.   #---------------------------------------------------------------------------
  3.   # * 初始化
  4.   #---------------------------------------------------------------------------
  5.   alias icon_initialize initialize
  6.   def initialize
  7.     icon_initialize
  8.     creat_enemy_icon
  9.     icon_update
  10.   end
  11.   #---------------------------------------------------------------------------
  12.   # * 创建精灵实例
  13.   #---------------------------------------------------------------------------  
  14.   def creat_enemy_icon
  15.     @enemy_icon = $game_troop.members.select {|item| item.have_state?}
  16.       @enemy_icon.reverse.collect do |icon|
  17.           Sprite_EnemyState.new(@viewport1, icon)
  18.      end
  19.   end
  20.   #--------------------------------------------------------------------------
  21.   # * 释放
  22.   #--------------------------------------------------------------------------
  23.   alias icon_dispose dispose
  24.   def dispose
  25.     icon_dispose
  26.     dispose_enemy_icon
  27.   end
  28.   #---------------------------------------------------------------------------
  29.   # * 更新
  30.   #---------------------------------------------------------------------------
  31.   alias icon_update update
  32.   def update
  33.     icon_update
  34.     update_enemy_icon
  35.   end
  36.   #---------------------------------------------------------------------------
  37.   # * 释放icon
  38.   #---------------------------------------------------------------------------
  39.   def dispose_enemy_icon
  40.     @enemy_icon.each {|sprite| sprite.dispose }
  41.   end
  42.   #---------------------------------------------------------------------------
  43.   # * 更新icon
  44.   #---------------------------------------------------------------------------
  45.   def update_enemy_icon
  46.     @enemy_icon.each {|sprite| sprite.update } if @enemy_icon
  47.   end
  48. end
  49.  
  50. class Sprite_EnemyState < Sprite_Battler  
  51.   #---------------------------------------------------------------------------
  52.   # * 初始化
  53.   #---------------------------------------------------------------------------
  54.   def initialize(viewport, battler = nil)
  55.     super(viewport, battler)
  56.   end
  57.   #---------------------------------------------------------------------------
  58.   # * 释放
  59.   #---------------------------------------------------------------------------
  60.   def dispose
  61.     bitmap.dispose if bitmap
  62.     super
  63.   end
  64.   #---------------------------------------------------------------------------
  65.   # * 更新
  66.   #---------------------------------------------------------------------------  
  67.     def update
  68.       super
  69.       if @use_sprite
  70.          update_icon_bitmap
  71.       else
  72.       self.bitmap = nil
  73.       @effect_type = nil
  74.       end
  75.     end
  76.   #---------------------------------------------------------------------------
  77.   # * 更新画面Icon
  78.   #---------------------------------------------------------------------------
  79.   def update_icon_bitmap
  80.     icons = (@battler.state_icons + @battler.buff_icons)[0, width / 24]
  81.     icons.each_with_index {|n, i| draw_enemy_icon(n, @battler.x - 20 * i, @battler.y - 20) }
  82.   end
  83.   # --------------------------------------------------------------------------
  84.   #  * 绘制敌人icon
  85.   # --------------------------------------------------------------------------
  86.   def draw_enemy_icon(icon_index, x, y,enabled = true)
  87.     bw = Graphics.width + 48
  88.     bh = Font.default_size*3
  89.     bitmap = Bitmap.new(bw,bh)
  90.     icbitmap = Cache.system("Iconset")
  91.     rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
  92.     new_bitmap = bitmap.blt(x, y, icbitmap, rect, enabled ? 255 : translucent_alpha)
  93.     if bitmap != new_bitmap
  94.       self.bitmap = new_bitmap
  95.       init_visibility
  96.     end
  97.   end
  98. end
  99.  
  100. class Game_Enemy
  101.  
  102.   def have_state?
  103.     return true if @state != []
  104.   end
  105.  
  106. end

Lv3.寻梦者

梦石
0
星屑
2668
在线时间
357 小时
注册时间
2015-1-29
帖子
13
2
发表于 2020-9-9 20:44:57 | 只看该作者
显示状态
搜索就有现成的
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
345
在线时间
57 小时
注册时间
2013-1-11
帖子
33
3
 楼主| 发表于 2020-9-10 08:28:39 | 只看该作者
SmallDrop 发表于 2020-9-9 20:44
显示状态
搜索就有现成的

感谢指路,我去看看
主要还是想搞清楚哪里写的有问题
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
345
在线时间
57 小时
注册时间
2013-1-11
帖子
33
4
 楼主| 发表于 2020-9-10 10:38:36 | 只看该作者
SmallDrop 发表于 2020-9-9 20:44
显示状态
搜索就有现成的

搞定了,感谢大佬
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-25 10:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表