Project1

标题: 战斗时防御+受伤+死亡用图片显示。请高手帮忙。 [打印本页]

作者: 爆焰    时间: 2012-10-26 19:49
标题: 战斗时防御+受伤+死亡用图片显示。请高手帮忙。
由于全动画脚本里面掺杂了其他东西,而且冲突多,不好设置。所以我有了个想法。求实现。



比如:角色-阿尔西斯
在Battlers文件夹里放图片— 阿尔西斯_A.png。这张是静态防御图片。选项为防御时角色阿尔西斯就显示这张图片。
阿尔西斯_B.png。这张是受伤图片,4格图片,有个连续播放,当敌人攻击角色时的动画效果。
阿尔西斯_C.png。这是张死亡静态图片。当阿尔西斯死亡时显示的。

请高手帮忙。dsu_plus_rewardpost_czw
作者: yagami    时间: 2012-10-27 14:12
本帖最后由 yagami 于 2012-10-27 14:15 编辑

这东西叫超级战斗 以前柳柳发过教程
大概是改这几个地方
第一步 Game_Battler 1 里
attr_reader   :battler_name
改为 attr_accessor :battler_name (把只读属性改为可变换的后面切换战斗图要用到)
挨打 防御 改Scene_Battle 4
这里我做了点扩展 你自己修改 这段插入到 显示动画这里
  1.      if (target.current_action.kind == 0 and target.current_action.basic == 1 and target.damage != "")  
  2.          if target.damage.to_i >= 0 #按了防御 并且伤害大于0 切换防御战斗图 判定伤害是为了 避免加血时 按防御 结果角色防御动作的违和感
  3.           target.battler_name = target.battler_name.split(/★/)[0]
  4.          target.battler_name = target.battler_name + "★防御"
  5.          end
  6.        else
  7.          if  target.damage == "Miss"  or target.damage == "" #伤害是字符串类 比如MISS 这里可以自己添加闪避类的战斗图
  8.            target.battler_name = target.battler_name.split(/★/)[0]
  9.          else
  10.            if target.damage.to_i <=0
  11.              target.battler_name = target.battler_name.split(/★/)[0]###伤害值小于0的时候 比如加血技能 自己可以添加加血类的战斗图
  12.            else
  13.          target.battler_name = target.battler_name + "★挨打" #####受到伤害 切换挨打战斗图
  14.       end
  15.          end
  16.          end
复制代码
上面2处都要加在 for target in @target_battlers 这里面 否则无法识别taget
最后在显示伤害里加上 target.battler_name = target.battler_name.split(/★/)[0] 把战斗图还原







死亡的话是Sprite_Battler 找到 if @battler.damage == nil and @battler.dead?
加入这个@battler.battler_name = @battler.battler_name.split(/★/)[0]
  @battler.battler_name = @battler.battler_name + "★死亡"
因为敌我音效分开 所以 敌人和我方都要加
记得就这些地方 有BUG再说



作者: 爆焰    时间: 2012-10-27 16:49
本帖最后由 爆焰 于 2012-10-27 22:46 编辑

………………………………………………
作者: yagami    时间: 2012-10-27 18:25
Project1.rar (276.29 KB, 下载次数: 133)
改好了 自己测试吧 有问题再说
作者: yagami    时间: 2012-10-27 19:45
  1. # 设置活动块坐标
  2.     if self.enemy != nil
  3.     case self.enemy.id
  4.    
  5.     when 41    #咒歌
  6.       self.x = 150
  7.       self.y = 145
  8.    
  9.     when 100..200         #换装迷宫
  10.       self.x = self.enemy.screen_x - 158
  11.       self.y = self.enemy.screen_y - 64 + 140 - 75
  12.       
  13.     when 200..300         #魔物
  14.       self.x = self.enemy.screen_x - 130
  15.       self.y = self.enemy.screen_y - 79 + 140 - 75
  16.       
  17.     when 16
  18.       self.x = self.enemy.screen_x - 130
  19.       self.y = self.enemy.screen_y - 79 + 140 - 75
  20.       
  21.     when 50
  22.       self.x = self.enemy.screen_x - 230
  23.       self.y = self.enemy.screen_y - 64 + 140 - 75
  24.     else
  25.       self.x = self.enemy.screen_x - 130
  26.       self.y = self.enemy.screen_y - 64 + 140 - 75
  27.       end
  28.       
  29.       
  30.     end
复制代码
这是我工程里的 改法 你按这样自己修改
作者: 爆焰    时间: 2012-10-27 20:18
本帖最后由 爆焰 于 2012-10-27 22:45 编辑

…………………………………………
作者: 冷血冰狐    时间: 2013-6-22 20:32
yagami 发表于 2012-10-27 18:25
改好了 自己测试吧 有问题再说

这个不错!!!喜欢!!




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