本帖最后由 jiushiainilip19 于 2016-10-11 18:34 编辑
写我不会 但是做一些提示可以
战斗画面是有坐标的
screen_y screen_x screen_z
screen_y screen_x screen_z
这三种
在游戏中每一个角色都有一个固定的待机坐标,这些坐标在全动画战斗脚本中是这样写的
class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● 取得战斗画面的 X 坐标 #-------------------------------------------------------------------------- def screen_x # 返回计算后的队伍 X 坐标的排列顺序 if self.index != nil #...................................................................... return self.index * 90 + 500 #...................................................................... else return 0 end end #-------------------------------------------------------------------------- # ● 取得战斗画面的 Y 坐标 #-------------------------------------------------------------------------- def screen_y #........................................................................ return 464 - self.index * 110 ; #........................................................................ end #-------------------------------------------------------------------------- # ● 取得战斗画面的 Z 坐标 #-------------------------------------------------------------------------- def screen_z # 返回计算后的队伍 Z 坐标的排列顺序 if self.index != nil return 4 - self.index else return 0 end end end
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● 取得战斗画面的 X 坐标
#--------------------------------------------------------------------------
def screen_x
# 返回计算后的队伍 X 坐标的排列顺序
if self.index != nil
#......................................................................
return self.index * 90 + 500
#......................................................................
else
return 0
end
end
#--------------------------------------------------------------------------
# ● 取得战斗画面的 Y 坐标
#--------------------------------------------------------------------------
def screen_y
#........................................................................
return 464 - self.index * 110 ;
#........................................................................
end
#--------------------------------------------------------------------------
# ● 取得战斗画面的 Z 坐标
#--------------------------------------------------------------------------
def screen_z
# 返回计算后的队伍 Z 坐标的排列顺序
if self.index != nil
return 4 - self.index
else
return 0
end
end
end
看不懂没关系,但是可以从另一个方式去看他,我们把视线转移到Game_Battler 3中!
然后在Game_Battler 3中P出来 例如:
if hit_result == true # 计算威力 power = skill.power + user.atk * skill.atk_f / 100 if power > 0 power -= self.pdef * skill.pdef_f / 200 power -= self.mdef * skill.mdef_f / 200 power = [power, 0].max end p user.screen_y #P 出行动这角色的原点Y坐标 可以看下图! if user.is_a?(Game_Actor) && user.screen_y==354 power*=100000 p "站位好就是牛" end #我方角色在Y==354的时候威力增益100000 请看实际图片如下
if hit_result == true
# 计算威力
power = skill.power + user.atk * skill.atk_f / 100
if power > 0
power -= self.pdef * skill.pdef_f / 200
power -= self.mdef * skill.mdef_f / 200
power = [power, 0].max
end
p user.screen_y #P 出行动这角色的原点Y坐标 可以看下图!
if user.is_a?(Game_Actor) && user.screen_y==354
power*=100000
p "站位好就是牛"
end
#我方角色在Y==354的时候威力增益100000 请看实际图片如下
结果出来了,这个在行动中的角色Y值在464
好了,那我们就有办法治理他了 请看上面的代码
好了 ,我会的只有这些了,高深的没辙了,当然想写出什么效果你可以说出来
我试一试能够告诉你怎么达到(前提是我要会 - -!)
|