社区应用 最新帖子 精华区 社区服务 会员列表 统计排行 道具中心
主题 : 请教一套好的状态法术跟随思路...[45度战斗非真位移]
级别: ②入门
显示用户信息 
40  发表于: 2007-01-26   
发现问题了...

when 1..150 # 其他的动画编号
  sprite.z = 2000
  end

在这个区域内的循环动画层怎么也在怪的脚下呢.. 还有发现了不能同时获得多种状态法术.
级别: 总版主
显示用户信息 
41  发表于: 2007-01-26   
因为这样子的修改会导致所有循环动画都在角色的脚下,所以最最安全的方法应该是:
(编辑中)
我的Blog:http://hi.baidu.com/bunnygod


RM2K->玩具。
RMXP->给人“会编程”感觉的玩具,当然实际上还不会编程。
(\__/)
("=.=) W
( ~  )~|
级别: 总版主
显示用户信息 
42  发表于: 2007-01-26   
复制代码
  1. module RPG
  2. class Sprite < ::Sprite
  3. ###########################################################################
  4. def update_loop_animation
  5.   frame_index = @_loop_animation_index
  6.   cell_data = @_loop_animation.frames[frame_index].cell_data
  7.   position = @_loop_animation.position
  8.   animation_set_sprites(@_loop_animation_sprites, cell_data, position)
  9.   if @_animation.id == 要在角色脚下的循环动画ID # 如果要多添加可以加上 or @_animation.id == 另一个循环动画的ID
  10.   for i in 0..15
  11.   @_loop_animation_sprites[i].z = 0
  12.   end
  13.   end
  14.   for timing in @_loop_animation.timings
  15.   if timing.frame == frame_index
  16.     animation_process_timing(timing, true)
  17.   end
  18.   end
  19. end
  20. ###########################################################################
  21. def animation_set_sprites(sprites, cell_data, position)
  22.   for i in 0..15
  23.   sprite = sprites[i]
  24.   pattern = cell_data[i, 0]
  25.   if sprite == nil or pattern == nil or pattern == -1
  26.     sprite.visible = false if sprite != nil
  27.   next
  28.   end
  29.   sprite.visible = true
  30.   sprite.src_rect.set(pattern % 5 * 192, pattern / 5 * 192, 192, 192)
  31.   if position == 3
  32.   if self.viewport != nil
  33.     sprite.x = self.viewport.rect.width / 2
  34.     sprite.y = self.viewport.rect.height - 160
  35.   else
  36.     sprite.x = 320
  37.     sprite.y = 240
  38.   end
  39.   else
  40.   sprite.x = self.x - self.ox + self.src_rect.width / 2
  41.   sprite.y = self.y - self.oy + self.src_rect.height / 2
  42.   sprite.y -= self.src_rect.height / 4 if position == 0
  43.   sprite.y += self.src_rect.height / 4 if position == 2
  44.   end
  45.   sprite.x += cell_data[i, 1]
  46.   sprite.y += cell_data[i, 2]
  47. ###########################################################################
  48.   case @_animation.id
  49.   when 151 # 动画编号,自己设定
  50.   sprite.z = 5
  51.   when 1..150 # 其他的动画编号
  52.   sprite.z = 2000
  53.   end
  54. ###########################################################################
  55.   sprite.ox = 96
  56.   sprite.oy = 96
  57.   sprite.zoom_x = cell_data[i, 3] / 100.0
  58.   sprite.zoom_y = cell_data[i, 3] / 100.0
  59.   sprite.angle = cell_data[i, 4]
  60.   sprite.mirror = (cell_data[i, 5] == 1)
  61.   sprite.opacity = cell_data[i, 6] * self.opacity / 255.0
  62.   sprite.blend_type = cell_data[i, 7]
  63.   end
  64. end
  65. end
  66. end
我的Blog:http://hi.baidu.com/bunnygod


RM2K->玩具。
RMXP->给人“会编程”感觉的玩具,当然实际上还不会编程。
(\__/)
("=.=) W
( ~  )~|
级别: ②入门
显示用户信息 
43  发表于: 2007-01-27   
全跑头上了
级别: 总版主
显示用户信息 
44  发表于: 2007-01-27   
全跑头上了。。。?什么意思?
我的Blog:http://hi.baidu.com/bunnygod


RM2K->玩具。
RMXP->给人“会编程”感觉的玩具,当然实际上还不会编程。
(\__/)
("=.=) W
( ~  )~|
级别: ②入门
显示用户信息 
45  发表于: 2007-01-27   
又跑人身上了

我看还是等杀鸡大人 来处理吧,,,他写的他比较清楚的说
级别: 总版主
显示用户信息 
46  发表于: 2007-01-27   
什。。。什么。。。?!我是废材的秘密居然被人发现了~!!!怎么办怎么办(此人正在盘算如何杀人灭口ing)。。。

效果:让不同的动画分层
形式:范例工程
修改:脚本修改(简易)
区域:内部脚本Sprite类
作用:这个可以用来制作某些特殊的状态动画,默认情况下状态动画是在人物的上面的,对于制作一些阵法之类的状态非常不便(因为这个状态动画应该被角色盖住才能做出踩在脚下的效果),同理也可以运用在一些需要被角色盖住的战斗动画上面。
原理:其实只是在设定动画的优先级那里做了判定,让某些编号的动画低于角色的优先级,产生被角色盖住的效果。
ACL下载地址:http://acl.bugdie.org/动画分层.rar

如果地址不能下载(貌似只有你下不了?),下载附件也可以。
描述:喵
附件: 动画分层.rar (189 K) 下载次数:1
我的Blog:http://hi.baidu.com/bunnygod


RM2K->玩具。
RMXP->给人“会编程”感觉的玩具,当然实际上还不会编程。
(\__/)
("=.=) W
( ~  )~|
级别: ②入门
显示用户信息 
47  发表于: 2007-01-27   
好了,但是发现状态法不能同时出现多个。他只读队伍敌人状态设定的最靠前的一个?是我设置错误还是?
级别: 总版主
显示用户信息 
48  发表于: 2007-01-27   
引用
引用第47楼颠倒的彩虹2007-01-27 14:38发表的:
好了,但是发现状态法不能同时出现多个。他只读队伍敌人状态设定的最靠前的一个?是我设置错误还是?


这个是事实,RM只会显示最先的一个状态动画,这样做是为了防止过多状态动画叠加造成卡机。
我的Blog:http://hi.baidu.com/bunnygod


RM2K->玩具。
RMXP->给人“会编程”感觉的玩具,当然实际上还不会编程。
(\__/)
("=.=) W
( ~  )~|
美兽 离线
级别: ⑤进阶
显示用户信息 
49  发表于: 2007-01-27   
可以把循环的精灵的部分换成数组,不过如此要改的零碎就多了,再附加新东西冲突也会变大…………
希望破灭是因为发现真实,宁可背负罪孽也要维护爱我之人,永远的娜乌西卡!!!!!!
描述
快速回复

认证码:

验证问题:
12-5=?,答案:7 正确答案:7
按"Ctrl+Enter"直接提交