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
这里我做了点扩展 你自己修改 这段插入到 显示动画这里
if (target.current_action.kind == 0 and target.current_action.basic == 1 and target.damage != "")
if target.damage.to_i >= 0 #按了防御 并且伤害大于0 切换防御战斗图 判定伤害是为了 避免加血时 按防御 结果角色防御动作的违和感
target.battler_name = target.battler_name.split(/★/)[0]
target.battler_name = target.battler_name + "★防御"
end
else
if target.damage == "Miss" or target.damage == "" #伤害是字符串类 比如MISS 这里可以自己添加闪避类的战斗图
target.battler_name = target.battler_name.split(/★/)[0]
else
if target.damage.to_i <=0
target.battler_name = target.battler_name.split(/★/)[0]###伤害值小于0的时候 比如加血技能 自己可以添加加血类的战斗图
else
target.battler_name = target.battler_name + "★挨打" #####受到伤害 切换挨打战斗图
end
end
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)
2012-10-27 18:24 上传
点击文件名下载附件
改好了 自己测试吧 有问题再说
作者:
yagami
时间:
2012-10-27 19:45
# 设置活动块坐标
if self.enemy != nil
case self.enemy.id
when 41 #咒歌
self.x = 150
self.y = 145
when 100..200 #换装迷宫
self.x = self.enemy.screen_x - 158
self.y = self.enemy.screen_y - 64 + 140 - 75
when 200..300 #魔物
self.x = self.enemy.screen_x - 130
self.y = self.enemy.screen_y - 79 + 140 - 75
when 16
self.x = self.enemy.screen_x - 130
self.y = self.enemy.screen_y - 79 + 140 - 75
when 50
self.x = self.enemy.screen_x - 230
self.y = self.enemy.screen_y - 64 + 140 - 75
else
self.x = self.enemy.screen_x - 130
self.y = self.enemy.screen_y - 64 + 140 - 75
end
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