Project1

标题: 特技窗口和技能的Z坐标问题 [打印本页]

作者: 幽月    时间: 2008-7-25 20:40
提示: 作者被禁止或删除 内容自动屏蔽
作者: 灯笼菜刀王    时间: 2008-7-25 20:44
发个图来吧....什么要盖1号不要盖2号,结果盖了2号不盖1号 @_@...

默认的战斗脚本,角色是盖在技能窗口上面的。
作者: 幽月    时间: 2008-7-25 20:51
提示: 作者被禁止或删除 内容自动屏蔽
作者: 灯笼菜刀王    时间: 2008-7-25 20:59
技能动画- -,说什么技能窗口- -

话说,我也碰到这样的问题...不过,有解决办法...让角色走上前几步放技能囧.....


好象技能太大了还是会盖住- -...

我也一起等解决方法....
作者: 幽月    时间: 2008-7-25 21:21
提示: 作者被禁止或删除 内容自动屏蔽
作者: dbshy    时间: 2008-7-25 23:43
def animation_set_sprites(sprites, cell_data, position)
      for i in 0..15
        sprite = sprites
        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]
# ======================================
        sprite.z = 2000
#=======================================
        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

家一个animation_set_sprites(sprites, cell_data, position , ID)
然后用判断

或者用一个数组 ANIMATION 来记录每个人SKILL编号
然后用判断

作者: 灯笼菜刀王    时间: 2008-7-26 03:00
这一段看得转乎转乎.....

animation_set_sprites(sprites, cell_data, position , ID)

- -根据F1,这是更改每个技能的Z坐标。但是,这样做也不能达到效果,因为,

一,技能有通用型。而且,每个技能的话,我有200+个= =....

二,各个角色的站位不固定,因为替换队员等原因,角色的各个位置会经常变化,这个方法的局限性太大。而且我有26个可战斗单位...虽然在精简中,但是最后的队员数量也不会低于10个。

三,敌人方面,同一种类的敌人使用的当然都是同一个技能....

所以,用技能id来判断的方法不可行。

最好是根据角色的位置来区分sprite.z

作者: dbshy    时间: 2008-7-26 03:37
或者用一个数组 ANIMATION 来记录每个人SKILL编号
然后用判断

我不是还写了一种 = =

用位置也可以
作者: 幽月    时间: 2008-7-26 04:18
提示: 作者被禁止或删除 内容自动屏蔽
作者: 灯笼菜刀王    时间: 2008-7-26 09:28
以下引用dbshy于2008-7-25 19:37:52的发言:


或者用一个数组 ANIMATION 来记录每个人SKILL编号
然后用判断


我不是还写了一种 = =

用位置也可以


就是这个位置...
for i in 1...$game_party.actors.size
   case i ??
明显不能这样- -,,  就是这个判断角色处于什么位置下使用技能同时调整sprite.z,要怎么获得法- -~~

作者: dbshy    时间: 2008-7-26 19:50
以下引用灯笼菜刀王于2008-7-25 19:00:45的发言:

这一段看得转乎转乎.....

animation_set_sprites(sprites, cell_data, position , ID)

- -根据F1,这是更改每个技能的Z坐标。但是,这样做也不能达到效果,因为,

一,技能有通用型。而且,每个技能的话,我有200+个= =....

二,各个角色的站位不固定,因为替换队员等原因,角色的各个位置会经常变化,这个方法的局限性太大。而且我有26个可战斗单位...虽然在精简中,但是最后的队员数量也不会低于10个。

三,敌人方面,同一种类的敌人使用的当然都是同一个技能....

所以,用技能id来判断的方法不可行。

最好是根据角色的位置来区分sprite.z



以下引用灯笼菜刀王于2008-7-26 1:28:58的发言:

就是这个位置...
for i in 1...$game_party.actors.size
  case i ??
明显不能这样- -,,  就是这个判断角色处于什么位置下使用技能同时调整sprite.z,要怎么获得法- -~~


你自己不是说用位置,自己又否定了,不知你怎么想的{/cy}
搬起石头砸自己的脚么{/cy}










作者: 幽月    时间: 2008-7-26 19:57
提示: 作者被禁止或删除 内容自动屏蔽
作者: 灯笼菜刀王    时间: 2008-7-26 22:35
你自己不是说用位置,自己又否定了,不知你怎么想的
搬起石头砸自己的脚么


我又没说不能用位置,只是 1...$game_party.actors.size 要怎么和 当前活动的角色联系起来?

作者: 幽月    时间: 2008-7-28 20:46
提示: 作者被禁止或删除 内容自动屏蔽




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