Project1
标题:
有谁教教我怎么实现这个功能
[打印本页]
作者:
lj6139957
时间:
2007-6-21 03:22
标题:
有谁教教我怎么实现这个功能
我想用站上的教程"超级战斗制作教学 (待机,挨打,防御,倒地动画等)"里面的方法实现 待机,挨打.防御,等动画...懂是懂了...但是我发现了个问题...就是如果我的待机图片由8个动作构成,而挨打图片是4个动作构成...胜利后动画图片是16个动作构成..但是统一用
if @battler.is_a?(Game_Actor)
@nx += 1
@nx %= 40 #每帧+1,40帧一个循环
@xbit = @nx / 10 * self.bitmap.width/4 #获得当前的图像坐标
self.src_rect.set(@xbit, 0, self.bitmap.width/4, self.bitmap.height) #设置当前战斗图的图像
end
这个方法来刷新就出现问题了..而把所有图片都做成有相同的动作数目来构成的话..又出现了新问题..比如我挨打动画,本来只要4帧..但是做成了8帧的画会慢了很多..很不好看...而象胜利动画作成8个动作的话又少了不少的动作..
我想的就是可不可用if语句改一下
比如在防御时候为(防御图由8个动作构成)
@nx += 1
@nx %= 80 #每帧+1,40帧一个循环
@xbit = @nx / 10 * self.bitmap.width/8 #获得当前的图像坐标
self.src_rect.set(@xbit, 0, self.bitmap.width/8, self.bitmap.height)
在待机情况下(待机图由6个动作构成)
@nx += 1
@nx %= 60 #每帧+1,40帧一个循环
@xbit = @nx / 10 * self.bitmap.width/6 #获得当前的图像坐标
self.src_rect.set(@xbit, 0, self.bitmap.width/6, self.bitmap.height)
...等等
但是我刚刚学,不知道怎么改...有谁教教我怎么改...谢谢了
作者:
lj6139957
时间:
2007-6-21 03:22
标题:
有谁教教我怎么实现这个功能
我想用站上的教程"超级战斗制作教学 (待机,挨打,防御,倒地动画等)"里面的方法实现 待机,挨打.防御,等动画...懂是懂了...但是我发现了个问题...就是如果我的待机图片由8个动作构成,而挨打图片是4个动作构成...胜利后动画图片是16个动作构成..但是统一用
if @battler.is_a?(Game_Actor)
@nx += 1
@nx %= 40 #每帧+1,40帧一个循环
@xbit = @nx / 10 * self.bitmap.width/4 #获得当前的图像坐标
self.src_rect.set(@xbit, 0, self.bitmap.width/4, self.bitmap.height) #设置当前战斗图的图像
end
这个方法来刷新就出现问题了..而把所有图片都做成有相同的动作数目来构成的话..又出现了新问题..比如我挨打动画,本来只要4帧..但是做成了8帧的画会慢了很多..很不好看...而象胜利动画作成8个动作的话又少了不少的动作..
我想的就是可不可用if语句改一下
比如在防御时候为(防御图由8个动作构成)
@nx += 1
@nx %= 80 #每帧+1,40帧一个循环
@xbit = @nx / 10 * self.bitmap.width/8 #获得当前的图像坐标
self.src_rect.set(@xbit, 0, self.bitmap.width/8, self.bitmap.height)
在待机情况下(待机图由6个动作构成)
@nx += 1
@nx %= 60 #每帧+1,40帧一个循环
@xbit = @nx / 10 * self.bitmap.width/6 #获得当前的图像坐标
self.src_rect.set(@xbit, 0, self.bitmap.width/6, self.bitmap.height)
...等等
但是我刚刚学,不知道怎么改...有谁教教我怎么改...谢谢了
作者:
精灵使者
时间:
2007-6-21 03:27
那个If判定可是判断是否自己行动,如果去掉的话,敌人也要做。
另外,楼上的想法正解。
作者:
lj6139957
时间:
2007-6-21 04:38
具体该怎么做啊...我不知道该改哪里的脚本啊...对脚本还不是很熟..好比定义了个变量..当其为1的时候执行刷新防御图的操作...为2的时候为刷新挨打图的操作..但是我不知道改在哪里设定这些值的变化才有效...我尝试着在教程里换相应的战斗图的地方改变了这个变量的值...虽说没出现语法错误..但是好象也没作用...我先在Sprite_Battler里定义了个全局变量 $sssss 然后在Scene_Battle 4中 照教程里面修改的地方
if target.is_a?(Game_Actor)
target.battler_name = target.battler_name.split(/★/)[0]
if (target.current_action.kind == 0 and target.current_action.basic == 1) or target.damage == "Miss" or target.damage.to_i <= 0
target.battler_name = target.battler_name + "★3"
$sssss = 1
else
target.battler_name = target.battler_name + "★4"
$sssss = 2
end
end
然后在Sprite_Battler里 def update的部分这样写的
if $sssss = 1
@nx += 1
@nx %= 80 #每帧+1,40帧一个循环
@xbit = @nx / 10 * self.bitmap.width/8 #获得当前的图像坐标
self.src_rect.set(@xbit, 0, self.bitmap.width/8, self.bitmap.height)
elseif $sssss = 2
@nx += 1
@nx %= 60 #每帧+1,40帧一个循环
@xbit = @nx / 10 * self.bitmap.width/6 #获得当前的图像坐标
self.src_rect.set(@xbit, 0, self.bitmap.width/6, self.bitmap.height)
else
@nx += 1
@nx %= 160 #每帧+1,40帧一个循环
@xbit = @nx / 10 * self.bitmap.width/16 #获得当前的图像坐标
self.src_rect.set(@xbit, 0, self.bitmap.width/16, self.bitmap.height)
end
但是好象没效果..图片还是照最前面的方法显示 即 if $sssss = 1 下面的方法刷新的..
到底该怎么改啊....哪位知道怎么改 才可以啊
作者:
lj6139957
时间:
2007-6-22 02:18
已经解决了 原来是我的格式写错了 应该写为 $ssss == 1 呵呵
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1