Project1
标题:
全动画战斗脚本的z坐标
[打印本页]
作者:
叮当猫的马甲
时间:
2008-8-12 05:00
提示:
作者被禁止或删除 内容自动屏蔽
作者:
叮当猫的马甲
时间:
2008-8-12 05:32
提示:
作者被禁止或删除 内容自动屏蔽
作者:
zl90349166
时间:
2008-8-12 05:33
提示:
作者被禁止或删除 内容自动屏蔽
作者:
叮当猫的马甲
时间:
2008-8-12 05:40
提示:
作者被禁止或删除 内容自动屏蔽
作者:
叮当猫的马甲
时间:
2008-8-12 06:33
提示:
作者被禁止或删除 内容自动屏蔽
作者:
最後一滴淚
时间:
2008-8-12 06:45
http://rpg.blue/upload_program/f ... 改版_98923468.rar
脚本好大_放不上来只好让LZ自己下载....
作者:
叮当猫的马甲
时间:
2008-8-12 06:55
提示:
作者被禁止或删除 内容自动屏蔽
作者:
最後一滴淚
时间:
2008-8-12 06:59
以下引用
叮当猫的马甲于2008-8-11 22:55:40
的发言:
你这个脚本早就过期了!后更新了另一个了!我而且你这个都没打到我的要求!郁闷!~~~~~~~
问题是你放上来的就是这个..我又不知道LZ用的是那个!?
作者:
叮当猫的马甲
时间:
2008-8-12 07:11
提示:
作者被禁止或删除 内容自动屏蔽
作者:
叮当猫的马甲
时间:
2008-8-12 18:28
提示:
作者被禁止或删除 内容自动屏蔽
作者:
叮当猫的马甲
时间:
2008-8-12 22:29
提示:
作者被禁止或删除 内容自动屏蔽
作者:
果冻叮当猫
时间:
2008-8-12 22:33
知道的人快点来帮忙拉
作者:
叮当猫的马甲
时间:
2008-8-13 03:15
提示:
作者被禁止或删除 内容自动屏蔽
作者:
wingcyx
时间:
2008-8-13 03:22
哎!~~~~~~~~~
作者:
zl90349166
时间:
2008-8-13 03:24
提示:
作者被禁止或删除 内容自动屏蔽
作者:
果冻叮当猫
时间:
2008-8-13 03:28
这里两个提问都是因为那个全动画脚本(彩虹神剑是被集成在里面的)
作者:
zl90349166
时间:
2008-8-13 03:36
提示:
作者被禁止或删除 内容自动屏蔽
作者:
lhbadsl
时间:
2008-8-13 08:08
超级郁闷
class Sprite < ::Sprite类中def animation_set_sprites方法
def animation_set_sprites(sprites, cell_data, position, invisible = false)
if invisible
for i in 0..15
sprites[i].visible = false
end
return
end
for i in 0..15
sprite = sprites[i]
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 - 225
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 = 1000
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
复制代码
这个就是数据库动画播放器(rm自带就有,不过这个是我从取消循环动画脚本中抽出来的),其中sprite.z = 1000这句就是动画的z坐标(它的意思是数据库动画播放所用的精灵的z坐标是1000,自己改吧),这个是内部类,不要郁闷了,还不如看看说明书。。。。你以为个个都这么高手啊。。。还就是分才100,问题又这么另类。。呵呵,好心也给多点了。。。。{/gg}
作者:
lhbadsl
时间:
2008-8-13 08:20
不管你用什么脚本,都是这里,因为这个是默认的数据库动画播放引擎,所有修改数据库动画的脚本,不论是那个都要修改这个类,我不用看全动画脚本就知道,因为它不可能离开这个类重新写出数据库动画播放引擎(虽然有人有这个实力,不过这样没有必要的东西没人会做,太傻了,最多也是修改它而已。。)。。。。找到这里就可以了,那个取消循环动画脚本中有这个方法,彩虹是没有这个方法的(全数据库动画战斗系统我没研究。。。。我不喜欢它,不过知道它的原理,这个方法可能这个脚本中有。。作者可能修改了),如果你没用取消循环动画脚本,那就把说明书中的脚本中这个函数贴到彩虹中再改,如果你连彩虹都没有的话,就直接把这个类(说明书上class Sprite < ::Sprite有详细的定义,我下面这个是随便抽出来的可能有错,不过你自己看看,抽出来就可以了)
module RPG
class Sprite < ::Sprite
def animation_set_sprites(sprites, cell_data, position)
for i in 0..15
sprite = sprites[i]
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
end
end
复制代码
贴到main前面,再改这个函数中的sprite.z = 2000这一句就可以了(你的敌人会压住动画可能就是敌人精灵z坐标设定太高,或这你用了不好的脚本。数据库动画精灵的z坐标设定太低了,rmxp本来数据库动画坐标默认是2000的,其实你不用我的改法改低敌人精灵的z坐标数值也可以,总之解决办法有很多种,不一定要用内部类的)。。。如果你还是不会的话。。。把工程给我,我给你改。。。。很简单的,还有就是你那个防御乱动的效果可能是彩虹的特效脚本里有开关把
# 角色受攻击时是否跳一下
BATTLER_JUMP = true
复制代码
改为false就可以了,如果不是的话那就要修改脚本了,没有看到脚本我也没有办法(没看过,谁知道啊。。。。)应该是很简单的东西,不过我一般都是自己写全动画战斗脚本,不会用现有的东西,所以别人的全动画脚本都很少研究。。。。不能直接解答你的这个问题。。。。不好意思
[LINE]1,#dddddd[/LINE]
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者:
叮当猫的马甲
时间:
2008-8-13 18:27
提示:
作者被禁止或删除 内容自动屏蔽
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1