这次MV的战斗动画似乎是一直显示在所有角色和敌人之上的。如果敌人层叠起来,动画这样放就很没层次感 
以前xp的战斗动画的z坐标是跟着人物sprite走的,所以上图中的怪被烧的动画应该在前面的怪后面一层。这次因为mv没有z的概念所以显示就杯具了。同样对主角也有这个问题。如果用横版战斗的话需要考虑这个bug。
 
然后楼主瞎折腾加了一句addchild,似乎解决了一部分问题 
JAVASCRIPT 代码 - //play animation based on battler's z
 - Sprite_Battler.prototype.setupAnimation = function(){
 -     while(this._battler.isAnimationRequested()){
 -         var data = this._battler.shiftAnimation();
 -         var animation = $dataAnimations[data.animationId];
 -         var mirror = data.mirror;
 -         var delay = animation.position === 3 ? 0 : data.delay;
 -         this.startAnimation(animation, mirror, delay);
 -         for(var i = 0; i < this._animationSprites.length; i++){
 -             var sprite = this._animationSprites[i];
 -             sprite.visible = this._battler.isSpriteVisible();
 - //如果不是全屏动画,动画作为子类加入
 -                         if(animation.position < 3){                       
 - this.addChild(sprite);
 -                                 };
 - //修改结束
 -         }
 -     }
 - };
 
  复制代码 
于是主角的动画显示似乎是一切正常了,如下图
 
但是敌人由于显示的结构不一样,杯具如下
 
本来应该打在蛤蛤上面,结果打到了屏幕中间,敌人的技能准备动画也是同样显示到屏幕中间了。 
但是这个位置会根据敌人位置变化,比如最前面第一个蛤蛤的动画就会更靠屏幕左下。也就是说坐标还是根据敌人位置来的。只不过位置不对。 
但是尝试在上面的脚本里面重定义sprite.x sprite.y没有任何效果。 
不知道具体怎么计算的,感觉只要正确定义一下敌人的坐标就可以正常显示了啊。 
            本帖来自P1论坛作者doranikofu,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址: https://rpg.blue/forum.php?mod=viewthread&tid=387170  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。  |