设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 5293|回复: 17
打印 上一主题 下一主题

[已经解决] 求大神写个动画脚本

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1410
在线时间
148 小时
注册时间
2018-3-24
帖子
145
跳转到指定楼层
发表于 2018-4-29 00:40:39 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
66星屑
系统动画效果如图动画图层在角色图层之上    我想做个法阵类的动画效果   就是角色图层高于动画图层  起到类似于动画角色在背后的效果
希望动画图片名称加个前缀就能实现这个功能      求懂脚本的大神帮忙写下

224236uo8rl5qu9791rj2z.png (69.69 KB, 下载次数: 35)

224236uo8rl5qu9791rj2z.png

Lv3.寻梦者

梦石
0
星屑
1410
在线时间
148 小时
注册时间
2018-3-24
帖子
145
15
 楼主| 发表于 2018-4-29 17:18:31 | 只看该作者
gforce 发表于 2018-4-29 16:35
我也想不出原因...直接给你工程好了

对的  想要的就是您范例中这种效果  可是我的工程还是一直不行  可能和战斗系统啥的脚本冲突了吧   不过还是谢谢了
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1410
在线时间
148 小时
注册时间
2018-3-24
帖子
145
14
 楼主| 发表于 2018-4-29 16:26:59 | 只看该作者
够爱 发表于 2018-4-29 14:12
还是不行    动画图层还是在角色图层之上  不知道是不是我用法错误

新建了个工程试了下还是在角色图层上边  
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1410
在线时间
148 小时
注册时间
2018-3-24
帖子
145
13
 楼主| 发表于 2018-4-29 16:21:36 | 只看该作者
够爱 发表于 2018-4-29 14:12
还是不行    动画图层还是在角色图层之上  不知道是不是我用法错误

那我新建个工程试试看
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1410
在线时间
148 小时
注册时间
2018-3-24
帖子
145
12
 楼主| 发表于 2018-4-29 15:43:25 | 只看该作者
仲秋启明 发表于 2018-4-29 15:35
Sprite_Base里
164行改成animation_set_sprites(@animation.frames[frame_index],@animation.id)
183行def  ...

谢谢大神   
看的并不是很懂    这是在原脚本里修改吗? 怕会出现bug或是出现全部动画变底层了的问题
所以希望是通过添加一个脚本  然后通过加前缀等方法 达到部分动画在底层的效果  
回复

使用道具 举报

Lv4.逐梦者

醉啸 长风万里

梦石
0
星屑
6162
在线时间
6593 小时
注册时间
2007-12-16
帖子
4501

贵宾

11
发表于 2018-4-29 15:35:59 | 只看该作者
Sprite_Base里
164行改成animation_set_sprites(@animation.frames[frame_index],@animation.id)
183行def animation_set_sprites(frame,animation_id)
184行加一句@animation_id = animation_id
207行“sprite.z = self.z + 300 + i”那里加类似
  1. if @animation_id == 数据库里动画的id
  2. sprite.z = self.z - 100 + i
  3. else
  4. sprite.z = self.z + 300 + i
  5. end
复制代码

或者
  1. case @animation_id
  2. when 1,2
  3. self.z - 100 + i
  4. else
  5. sprite.z = self.z + 300 + i
  6. end
复制代码

的判定就行了

还在龟速填坑中
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1410
在线时间
148 小时
注册时间
2018-3-24
帖子
145
10
 楼主| 发表于 2018-4-29 14:12:49 | 只看该作者
gforce 发表于 2018-4-29 13:35
随意修改了一下,希望没BUG
动画名子加上即可

还是不行    动画图层还是在角色图层之上  不知道是不是我用法错误

${CD~7XR%N8SBSO2MPPF[OJ.png (40.44 KB, 下载次数: 21)

${CD~7XR%N8SBSO2MPPF[OJ.png

VSCUAE)$MOHBPA37SQL_DSN.jpg (20.45 KB, 下载次数: 22)

VSCUAE)$MOHBPA37SQL_DSN.jpg

点评

用法没错,可能撞了你的其他脚本  发表于 2018-4-29 16:15
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1410
在线时间
148 小时
注册时间
2018-3-24
帖子
145
9
 楼主| 发表于 2018-4-29 13:52:56 | 只看该作者
gforce 发表于 2018-4-29 13:35
随意修改了一下,希望没BUG
动画名子加上即可

请问大神是在动画名称前加<U>
还是在动画的图片名称前加<U>

点评

动画名称  发表于 2018-4-29 14:04
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7290
在线时间
1690 小时
注册时间
2017-4-28
帖子
85

开拓者

8
发表于 2018-4-29 13:35:17 | 只看该作者
本帖最后由 gforce 于 2018-4-29 13:38 编辑

随意修改了一下,希望没BUG
动画名子加上<U>即可

  1. class Sprite_Base < Sprite
  2.   alias ori_start_animation start_animation
  3.   def start_animation(animation, mirror = false)
  4.     ori_start_animation(animation, mirror = false)
  5.     if @animation
  6.       @animation.name =~ /<U>/ ? @ani_z = -10 : @ani_z = 300
  7.     end
  8.   end
  9.   
  10.   def animation_set_sprites(frame)#只改了一行
  11.     cell_data = frame.cell_data
  12.     @ani_sprites.each_with_index do |sprite, i|
  13.       next unless sprite
  14.       pattern = cell_data[i, 0]
  15.       if !pattern || pattern < 0
  16.         sprite.visible = false
  17.         next
  18.       end
  19.       sprite.bitmap = pattern < 100 ? @ani_bitmap1 : @ani_bitmap2
  20.       sprite.visible = true
  21.       sprite.src_rect.set(pattern % 5 * 192,
  22.         pattern % 100 / 5 * 192, 192, 192)
  23.       if @ani_mirror
  24.         sprite.x = @ani_ox - cell_data[i, 1]
  25.         sprite.y = @ani_oy + cell_data[i, 2]
  26.         sprite.angle = (360 - cell_data[i, 4])
  27.         sprite.mirror = (cell_data[i, 5] == 0)
  28.       else
  29.         sprite.x = @ani_ox + cell_data[i, 1]
  30.         sprite.y = @ani_oy + cell_data[i, 2]
  31.         sprite.angle = cell_data[i, 4]
  32.         sprite.mirror = (cell_data[i, 5] == 1)
  33.       end
  34.       sprite.z = self.z + @ani_z + i ##sprite.z = self.z + 300 + i
  35.       sprite.ox = 96
  36.       sprite.oy = 96
  37.       sprite.zoom_x = cell_data[i, 3] / 100.0
  38.       sprite.zoom_y = cell_data[i, 3] / 100.0
  39.       sprite.opacity = cell_data[i, 6] * self.opacity / 255.0
  40.       sprite.blend_type = cell_data[i, 7]
  41.     end
  42.   end  
  43. end
复制代码
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1410
在线时间
148 小时
注册时间
2018-3-24
帖子
145
7
 楼主| 发表于 2018-4-29 11:00:37 | 只看该作者
说明下  战斗系统是纵版的
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1410
在线时间
148 小时
注册时间
2018-3-24
帖子
145
6
 楼主| 发表于 2018-4-29 10:55:43 | 只看该作者
卫宫白 发表于 2018-4-29 08:06
就横版战斗系统就行。在横版基础里设定好你的魔法阵动画,再在横版设定中写入启用就行了
...

我是纵版战斗系统  所以想能不能通过写脚本加个前缀解决这个问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 08:41

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表