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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
打印 上一主题 下一主题

全动画战斗脚本的z坐标

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-8-12
帖子
39
11
 楼主| 发表于 2008-8-12 22:29:14 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
3 小时
注册时间
2008-8-10
帖子
243
12
发表于 2008-8-12 22:33:53 | 只看该作者
知道的人快点来帮忙拉
哎!要完成这个游戏肯定要使用很多脚本和素材!我想把小樱的动画变成游戏!我相信这并不是不可能的事!
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-8-12
帖子
39
13
 楼主| 发表于 2008-8-13 03:15:16 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-4-29
帖子
114
14
发表于 2008-8-13 03:22:06 | 只看该作者
哎!~~~~~~~~~
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-5-29
帖子
511
15
发表于 2008-8-13 03:24:18 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
3 小时
注册时间
2008-8-10
帖子
243
16
发表于 2008-8-13 03:28:28 | 只看该作者
这里两个提问都是因为那个全动画脚本(彩虹神剑是被集成在里面的)
哎!要完成这个游戏肯定要使用很多脚本和素材!我想把小樱的动画变成游戏!我相信这并不是不可能的事!
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-5-29
帖子
511
17
发表于 2008-8-13 03:36:14 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
5 小时
注册时间
2008-6-28
帖子
292
18
发表于 2008-8-13 08:08:15 | 只看该作者
超级郁闷
class Sprite < ::Sprite类中def animation_set_sprites方法
  1. def animation_set_sprites(sprites, cell_data, position, invisible = false)
  2.      if invisible
  3.        for i in 0..15
  4.          sprites[i].visible = false
  5.        end
  6.        return
  7.      end
  8.      for i in 0..15
  9.        sprite = sprites[i]
  10.        pattern = cell_data[i, 0]
  11.        if sprite == nil or pattern == nil or pattern == -1
  12.          sprite.visible = false if sprite != nil
  13.          next
  14.        end
  15.        sprite.visible = true
  16.        sprite.src_rect.set(pattern % 5 * 192, pattern / 5 * 192, 192, 192)
  17.        if position == 3
  18.          if self.viewport != nil
  19.            sprite.x = self.viewport.rect.width / 2
  20.            sprite.y = self.viewport.rect.height - 225
  21.          else
  22.            sprite.x = 320
  23.            sprite.y = 240
  24.          end
  25.        else
  26.          sprite.x = self.x - self.ox + self.src_rect.width / 2
  27.          sprite.y = self.y - self.oy + self.src_rect.height / 2
  28.          sprite.y -= self.src_rect.height / 4 if position == 0
  29.          sprite.y += self.src_rect.height / 4 if position == 2
  30.        end
  31.        sprite.x += cell_data[i, 1]
  32.        sprite.y += cell_data[i, 2]
  33.        sprite.z = 1000
  34.        sprite.ox = 96
  35.        sprite.oy = 96
  36.        sprite.zoom_x = cell_data[i, 3] / 100.0
  37.        sprite.zoom_y = cell_data[i, 3] / 100.0
  38.        sprite.angle = cell_data[i, 4]
  39.        sprite.mirror = (cell_data[i, 5] == 1)
  40.        sprite.opacity = cell_data[i, 6] * self.opacity / 255.0
  41.        sprite.blend_type = cell_data[i, 7]
  42.      end
  43.    end
复制代码
这个就是数据库动画播放器(rm自带就有,不过这个是我从取消循环动画脚本中抽出来的),其中sprite.z = 1000这句就是动画的z坐标(它的意思是数据库动画播放所用的精灵的z坐标是1000,自己改吧),这个是内部类,不要郁闷了,还不如看看说明书。。。。你以为个个都这么高手啊。。。还就是分才100,问题又这么另类。。呵呵,好心也给多点了。。。。{/gg}
不要小看偶哦~~偶可是雨血2和历史2的主系统哦
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
5 小时
注册时间
2008-6-28
帖子
292
19
发表于 2008-8-13 08:20:32 | 只看该作者
不管你用什么脚本,都是这里,因为这个是默认的数据库动画播放引擎,所有修改数据库动画的脚本,不论是那个都要修改这个类,我不用看全动画脚本就知道,因为它不可能离开这个类重新写出数据库动画播放引擎(虽然有人有这个实力,不过这样没有必要的东西没人会做,太傻了,最多也是修改它而已。。)。。。。找到这里就可以了,那个取消循环动画脚本中有这个方法,彩虹是没有这个方法的(全数据库动画战斗系统我没研究。。。。我不喜欢它,不过知道它的原理,这个方法可能这个脚本中有。。作者可能修改了),如果你没用取消循环动画脚本,那就把说明书中的脚本中这个函数贴到彩虹中再改,如果你连彩虹都没有的话,就直接把这个类(说明书上class Sprite < ::Sprite有详细的定义,我下面这个是随便抽出来的可能有错,不过你自己看看,抽出来就可以了)
  1. module RPG
  2.   class Sprite < ::Sprite
  3.         def animation_set_sprites(sprites, cell_data, position)
  4.       for i in 0..15
  5.         sprite = sprites[i]
  6.         pattern = cell_data[i, 0]
  7.         if sprite == nil or pattern == nil or pattern == -1
  8.           sprite.visible = false if sprite != nil
  9.           next
  10.         end
  11.         sprite.visible = true
  12.         sprite.src_rect.set(pattern % 5 * 192, pattern / 5 * 192, 192, 192)
  13.         if position == 3
  14.           if self.viewport != nil
  15.             sprite.x = self.viewport.rect.width / 2
  16.             sprite.y = self.viewport.rect.height - 160
  17.           else
  18.             sprite.x = 320
  19.             sprite.y = 240
  20.           end
  21.         else
  22.           sprite.x = self.x - self.ox + self.src_rect.width / 2
  23.           sprite.y = self.y - self.oy + self.src_rect.height / 2
  24.           sprite.y -= self.src_rect.height / 4 if position == 0
  25.           sprite.y += self.src_rect.height / 4 if position == 2
  26.         end
  27.         sprite.x += cell_data[i, 1]
  28.         sprite.y += cell_data[i, 2]
  29.         sprite.z = 2000
  30.         sprite.ox = 96
  31.         sprite.oy = 96
  32.         sprite.zoom_x = cell_data[i, 3] / 100.0
  33.         sprite.zoom_y = cell_data[i, 3] / 100.0
  34.         sprite.angle = cell_data[i, 4]
  35.         sprite.mirror = (cell_data[i, 5] == 1)
  36.         sprite.opacity = cell_data[i, 6] * self.opacity / 255.0
  37.         sprite.blend_type = cell_data[i, 7]
  38.       end
  39.     end
  40.      end
  41. end
复制代码

贴到main前面,再改这个函数中的sprite.z = 2000这一句就可以了(你的敌人会压住动画可能就是敌人精灵z坐标设定太高,或这你用了不好的脚本。数据库动画精灵的z坐标设定太低了,rmxp本来数据库动画坐标默认是2000的,其实你不用我的改法改低敌人精灵的z坐标数值也可以,总之解决办法有很多种,不一定要用内部类的)。。。如果你还是不会的话。。。把工程给我,我给你改。。。。很简单的,还有就是你那个防御乱动的效果可能是彩虹的特效脚本里有开关把
  1. # 角色受攻击时是否跳一下
  2. BATTLER_JUMP = true
复制代码

改为false就可以了,如果不是的话那就要修改脚本了,没有看到脚本我也没有办法(没看过,谁知道啊。。。。)应该是很简单的东西,不过我一般都是自己写全动画战斗脚本,不会用现有的东西,所以别人的全动画脚本都很少研究。。。。不能直接解答你的这个问题。。。。不好意思

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
不要小看偶哦~~偶可是雨血2和历史2的主系统哦
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-8-12
帖子
39
20
 楼主| 发表于 2008-8-13 18:27:24 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-7-27 12:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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