Project1

标题: (3VIP)我的角色踩在了动画上面! [打印本页]

作者: 红屁股猴子    时间: 2007-7-20 01:49
标题: (3VIP)我的角色踩在了动画上面!


我的游戏角色使用全屏动画的时候。敌人别档在了动画下面而我的4个角色却踩在了动画上面!这样看着非常别扭。请高手来帮忙解决下!
我加入的战斗脚本如下:
45°战斗模式
按键输入技能威力
CP制御
AX追加
伤害美化
多重状态
战斗系统-升级提示
技能分类_战斗部分
技能分类_常规部分
查看敌人属性
魔法反弹
攻击反弹
作者: 红屁股猴子    时间: 2007-7-20 01:49
标题: (3VIP)我的角色踩在了动画上面!


我的游戏角色使用全屏动画的时候。敌人别档在了动画下面而我的4个角色却踩在了动画上面!这样看着非常别扭。请高手来帮忙解决下!
我加入的战斗脚本如下:
45°战斗模式
按键输入技能威力
CP制御
AX追加
伤害美化
多重状态
战斗系统-升级提示
技能分类_战斗部分
技能分类_常规部分
查看敌人属性
魔法反弹
攻击反弹
作者: 真·ZERO    时间: 2007-7-20 01:57
你角色的Z坐标分别是多少……?
作者: 红屁股猴子    时间: 2007-7-20 02:00
是不是45度战斗脚本里的Z坐标?如下:
#--------------------------------------------------------------------------
# ● 取得战斗画面的 Z 坐标
#--------------------------------------------------------------------------
def screen_z
case self.index
when 0
   return 10
when 1
   return 9
when 2
   return 8
when 3
   return 7
else
   return 0
   end
end
end

作者: 真·ZERO    时间: 2007-7-20 02:01
恩……修改成这样看看……
#--------------------------------------------------------------------------
# ● 取得战斗画面的 Z 坐标
#--------------------------------------------------------------------------
def screen_z
case self.index
when 0
  return 3
when 1
  return 2
when 2
  return 1
when 3
  return 0
else
  return 0
  end
end
end

作者: 张永    时间: 2007-7-20 02:01
对脚本不大了解,但应该能透过把角色Z坐标改低一些而让动画高于角色.
应该是Game_Actor里改.
作者: 亿万星辰    时间: 2007-7-20 02:02
找下己方角色的sprite以及动画的z值设置,默认的动画z值貌似是2000
作者: cftx    时间: 2007-7-20 02:02
大概就是Z坐标问题,改看看............
作者: 红屁股猴子    时间: 2007-7-20 02:02
改了~还是睬在动画上面的{/ll}
作者: 亿万星辰    时间: 2007-7-20 02:04
做个小巧简单的工程放上来好了......
作者: 红屁股猴子    时间: 2007-7-20 02:05
以下引用亿万星辰于2007-7-19 18:04:33的发言:

做个小巧简单的工程放上来好了......

啊!亿万大人~~(激动中。。。。){/fd}膜拜。。。
作者: 红屁股猴子    时间: 2007-7-20 02:07
以下引用亿万星辰于2007-7-19 18:02:35的发言:

找下己方角色的sprite以及动画的z值设置,默认的动画z值貌似是2000

亿万大人指的角色的sprite是哪段脚本~和动画的z值的脚本是哪段啊?
作者: 红屁股猴子    时间: 2007-7-27 19:21
怎么那么久了亿万大人还米放工程上来哇~{/dk}
作者: 精灵使者    时间: 2007-7-27 19:22
说你放工程上来的= =最好不要自顶贴
我建议,你去应援区提问这个问题,比较容易得到快速的解答哦~
作者: 都督竹    时间: 2007-7-27 19:39
把合成方式设置为加法可以么? [LINE]1,#dddddd[/LINE]版主对此帖的评论:『没经过测试就回答,误导他人』,积分『-323』。这些被扣积分的一半会用于对本帖正确答案的悬赏。
作者: 越前リョーマ    时间: 2007-7-27 19:49
就是说要改成技能穿透过主角咯。
作者: 精灵使者    时间: 2007-7-27 20:05
默认的情况下技能都是在主角上边的,如果你设置了的话……上边有个位置为上/中/下/全屏幕,建议设为全屏幕

这个地方注意没有?
作者: 红屁股猴子    时间: 2007-7-27 23:16
选了全屏~我的角色还是踩在动画上面的{/fd}
作者: 精灵使者    时间: 2007-7-27 23:53
能不能用那个脚本看看?我记得庚卷里面有一个动画调整z值的脚本?我看看。

  1. module RPG
  2.   class Sprite < ::Sprite
  3.     def update_loop_animation
  4.       frame_index = @_loop_animation_index
  5.       cell_data = @_loop_animation.frames[frame_index].cell_data
  6.       position = @_loop_animation.position
  7.       animation_set_sprites(@_loop_animation_sprites, cell_data, position)
  8.   ###########################################################################
  9.       case @_loop_animation.id
  10.       # 这里设定状态的循环动画ID,只需要填写会被角色盖住的,其他不需要。
  11.       when 199
  12.         for i in 0..15
  13.           @_loop_animation_sprites[i].z = 0
  14.         end
  15.       end
  16.   ###########################################################################
  17.       for timing in @_loop_animation.timings
  18.         if timing.frame == frame_index
  19.           animation_process_timing(timing, true)
  20.         end
  21.       end
  22.     end
  23.     def animation_set_sprites(sprites, cell_data, position)
  24.       for i in 0..15
  25.         sprite = sprites[i]
  26.         pattern = cell_data[i, 0]
  27.         if sprite == nil or pattern == nil or pattern == -1
  28.           sprite.visible = false if sprite != nil
  29.         next
  30.       end
  31.       sprite.visible = true
  32.       sprite.src_rect.set(pattern % 5 * 192, pattern / 5 * 192, 192, 192)
  33.       if position == 3
  34.         if self.viewport != nil
  35.           sprite.x = self.viewport.rect.width / 2
  36.           sprite.y = self.viewport.rect.height - 160
  37.         else
  38.           sprite.x = 320
  39.           sprite.y = 240
  40.         end
  41.       else
  42.         sprite.x = self.x - self.ox + self.src_rect.width / 2
  43.         sprite.y = self.y - self.oy + self.src_rect.height / 2
  44.         sprite.y -= self.src_rect.height / 4 if position == 0
  45.         sprite.y += self.src_rect.height / 4 if position == 2
  46.       end
  47.       sprite.x += cell_data[i, 1]
  48.       sprite.y += cell_data[i, 2]
  49.   ###########################################################################
  50.       case @_animation.id
  51.       # 这边的动画指得是战斗时后的出招,挨打动画,并非状态的循环动画。
  52.       when 198..199,203..204 # 需要被角色盖住的动画编号,自己设定
  53.         sprite.z = 0
  54.       when 1..197, 200..202,205..210 # 其他的动画编号
  55.         sprite.z = 2000
  56.       end
  57.   ###########################################################################
  58.       sprite.ox = 96
  59.       sprite.oy = 96
  60.       sprite.zoom_x = cell_data[i, 3] / 100.0
  61.       sprite.zoom_y = cell_data[i, 3] / 100.0
  62.       sprite.angle = cell_data[i, 4]
  63.       sprite.mirror = (cell_data[i, 5] == 1)
  64.       sprite.opacity = cell_data[i, 6] * self.opacity / 255.0
  65.       sprite.blend_type = cell_data[i, 7]
  66.       end
  67.     end
  68.   end
  69. end
复制代码

在那里面写上你需要的动画编号,然后自己调整吧。
这个本来是解决动画在角色上面的脚本的。你可以按照说明反过来用并调整z值。
其他的z也可以这样定。
作者: 红屁股猴子    时间: 2007-7-28 00:38
还是不行~估计是我的脚本引起的。。我从新建个工程弄下。{/fd}
作者: 精灵使者    时间: 2007-7-28 01:04
如果不行的话你把那个脚本那个Z值调高些。
作者: 银灵子    时间: 2007-7-28 01:43
提示: 作者被禁止或删除 内容自动屏蔽




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