赞 | 0 |
VIP | 0 |
好人卡 | 4 |
积分 | 1 |
经验 | 45455 |
最后登录 | 2021-11-14 |
在线时间 | 446 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 55
- 在线时间
- 446 小时
- 注册时间
- 2006-11-18
- 帖子
- 1686
|
角色战斗图的刷新是在Sprite_Battler里面。所以,现在修改一下这个脚本。
初始化的部分: def initialize(viewport, battler = nil)
super(viewport)
@battler = battler
@battler_visible = false
end
添加两个属性: def initialize(viewport, battler = nil)
super(viewport)
@battler = battler
@battler_visible = false
#★★★★★★★★★★★★
@nx = 0
@xbit = 0
#★★★★★★★★★★★★
end
@nx表示当前的帧数,@xbit表示当前的图像。刚开始的时候都是0值。
刷新的部分def update,找到这段 # 文件名和色相与当前情况有差异的情况下
if @battler.battler_name != @battler_name or
@battler.battler_hue != @battler_hue
# 获取、设置位图
@battler_name = @battler.battler_name
@battler_hue = @battler.battler_hue
self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
@width = bitmap.width
@height = bitmap.height
self.ox = @width / 2
self.oy = @height
# 如果是战斗不能或者是隐藏状态就把透明度设置成 0
if @battler.dead? or @battler.hidden
self.opacity = 0
end
end
这段表示如果战斗中角色战斗图更换则重新换图片。在此下面添加一个刷新效果: # 文件名和色相与当前情况有差异的情况下
if @battler.battler_name != @battler_name or
@battler.battler_hue != @battler_hue
# 获取、设置位图
@battler_name = @battler.battler_name
@battler_hue = @battler.battler_hue
self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
@width = bitmap.width
@height = bitmap.height
self.ox = @width / 2
self.oy = @height
# 如果是战斗不能或者是隐藏状态就把透明度设置成 0
if @battler.dead? or @battler.hidden
self.opacity = 0
end
end
if @battler.is_a?(Game_Actor)
nx += 1
@nx %= 40 #每帧+1,40帧一个循环
@xbit = @nx / 10 * self.bitmap.width/4 #获得当前的图像坐标
self.src_rect.set(@xbit, 0, self.bitmap.width/4, self.bitmap.height) #设置当前战斗图的图像
end
这段就是表示,如果这个battler是角色的时候,每隔10帧角色的动画更新一次。好了。你把上面的图像和脚本放到自己的游戏中,就已经是具有待机动画的了。坐标可能不是很好,自己调一下即可。[quote][/quote]
!!!!!!!有颜色的那段你没用上!!!!!!!!!!! 系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~ |
|