Project1
标题:
地图上显示动画的后遗症
[打印本页]
作者:
patrick
时间:
2007-7-11 00:32
标题:
地图上显示动画的后遗症
远景图显示的地图,这时在地图上并行处理显示动画,再显示张图片的话,
地图上显示的动画会在那张图片的上方,怎么才能把那个显示的动画调到
图片的下方
说白点就是怎样调地图上显示动画的Z坐标 [LINE]1,#dddddd[/LINE]
版务信息:本贴由楼主自主结贴~
作者:
patrick
时间:
2007-7-11 00:32
标题:
地图上显示动画的后遗症
远景图显示的地图,这时在地图上并行处理显示动画,再显示张图片的话,
地图上显示的动画会在那张图片的上方,怎么才能把那个显示的动画调到
图片的下方
说白点就是怎样调地图上显示动画的Z坐标 [LINE]1,#dddddd[/LINE]
版务信息:本贴由楼主自主结贴~
作者:
patrick
时间:
2007-7-11 01:37
没人知道吗?
作者:
精灵使者
时间:
2007-7-11 01:58
由于网络原因重贴,此帖已被作者屏蔽!
作者:
精灵使者
时间:
2007-7-11 02:00
这个啊。我帮你。其实美兽的宝典最后一章已经有了方案了。
看这个脚本,注意添到你的main前面并设置一下。
module RPG
class Sprite < ::Sprite
def update_loop_animation
frame_index = @_loop_animation_index
cell_data = @_loop_animation.frames[frame_index].cell_data
position = @_loop_animation.position
animation_set_sprites(@_loop_animation_sprites, cell_data, position)
###########################################################################
case @_loop_animation.id
# 这里设定状态的循环动画ID,只需要填写会被角色盖住的,其他不需要。
when 199
for i in 0..15
@_loop_animation_sprites[i].z = 0
end
end
###########################################################################
for timing in @_loop_animation.timings
if timing.frame == frame_index
animation_process_timing(timing, true)
end
end
end
def animation_set_sprites(sprites, cell_data, position)
for i in 0..15
sprite = sprites[i]
pattern = cell_data[i, 0]
if sprite == nil or pattern == nil or pattern == -1
sprite.visible = false if sprite != nil
next
end
sprite.visible = true
sprite.src_rect.set(pattern % 5 * 192, pattern / 5 * 192, 192, 192)
if position == 3
if self.viewport != nil
sprite.x = self.viewport.rect.width / 2
sprite.y = self.viewport.rect.height - 160
else
sprite.x = 320
sprite.y = 240
end
else
sprite.x = self.x - self.ox + self.src_rect.width / 2
sprite.y = self.y - self.oy + self.src_rect.height / 2
sprite.y -= self.src_rect.height / 4 if position == 0
sprite.y += self.src_rect.height / 4 if position == 2
end
sprite.x += cell_data[i, 1]
sprite.y += cell_data[i, 2]
###########################################################################
case @_animation.id
# 这边的动画指得是战斗时后的出招,挨打动画,并非状态的循环动画。
when 198..199,203..204 # 需要被角色盖住的动画编号,自己设定
sprite.z = 0
when 1..197, 200..202,205..210 # 其他的动画编号
sprite.z = 2000
end
###########################################################################
sprite.ox = 96
sprite.oy = 96
sprite.zoom_x = cell_data[i, 3] / 100.0
sprite.zoom_y = cell_data[i, 3] / 100.0
sprite.angle = cell_data[i, 4]
sprite.mirror = (cell_data[i, 5] == 1)
sprite.opacity = cell_data[i, 6] * self.opacity / 255.0
sprite.blend_type = cell_data[i, 7]
end
end
end
end
复制代码
[LINE]1,#dddddd[/LINE]
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1