已解决,之前的写法会调用Sprite的position,实际上当战斗者走到指定位置后,再次调用stepForward时,position已经改变,就导致移动的x和y重新计算,并且计算的结果是战斗者的起点,导致了反复横跳,因为永远达不到实际的目的地,修改成使用Sprite的homeX和homeY作为计算后解决,并且我也加工了一下,把stepForward和走到敌人面前的方法区分了一下,新增了方法gotoEnemy,这个方法可以实现只有在普通攻击的时候才走到面前,施展魔法等行为站在原地,这个就是我之前想要的效果,贴出代码供大家参考吧
|
应为stepforward 是确认角色的时候向前一小步 你只是修改这个是不够的 因为其他function一直调用这个function Sprite_Actor.prototype.updateTargetPosition = function() { if (this._actor.canMove() && BattleManager.isEscaped()) { this.retreat(); } else if (this.shouldStepForward()) { this.stepForward(); } else if (!this.inHomePosition()) { this.stepBack(); } }; 你要找出全部调用这个stepforward的function进行修改 什么时候调用什么时候不调用 |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2025-8-11 23:45
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.