大佬教程收集整理的这篇文章主要介绍了移相器中的寻路动画,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
所以,我是第一次在 Phaser 中开发一款小游戏。
想法是使用寻路(使用easystar.Js)在地牢中移动角色。
我使用本教程的源代码作为快速入门: https://www.dynetisgames.com/2018/03/06/pathfinding-easystar-phaser-3/
此处 Pathfinding 运行良好,但角色一直处于空闲状态,根本没有动画;
所以我用 4 路行走动画创建了这个精灵:
这个想法是附加到每个补间,easystar 使用它来创建要遵循的路径,正确的动画,基于精灵相对于每个补间的位置;像这样:
将动画附加到每个补间:
Game.moveCharacter = function(path){
// Sets up a List of tweens,one for each tile to walk,that will be chained by the timeline
var tweens = [];
for(var i = 0; i < path.length-1; i++){
var ex = path[i+1].x;
var ey = path[i+1].y;
tweens.push({
targets: Game.player,x: {value: ex*Game.map.tileWIDth,duration: 200},y: {value: ey*Game.map.tileHeight,onupdate: animatePath(ex*Game.map.tileWIDth,ey*Game.map.tileHeight)
});
}
Game.scene.tweens.timeline({
tweens: tweens,onComplete: stopAnimation
});
};
选择正确动画的功能:
function animatePath(x,y)
{
if(y < playerposy)
{
playerposy -= 32;
console.log("up");
Game.player.anims.play('up',truE);
}
else if(y > playerposy)
{
playerposy += 32;
console.log("down");
Game.player.anims.play('down',truE);
}
else if(x < playerposx)
{
playerposx -= 32;
console.log("left");
Game.player.anims.play('left',truE);
}
else if (x > playerposx)
{
playerposx += 32;
console.log("right");
Game.player.anims.play('right',truE);
}
}
其中“32”是每个图块的尺寸。
角色到达后停止动画的功能:
function stopAnimation()
{
Game.player.anims.stop(null,truE);
}
读取日志,路径似乎被正确读取。 问题是:唯一显示的动画是最后一个补间动画,好像它覆盖了所有其他动画。 如何强制显示所有动画?
这是正在发生的事情的视频
https://www.youtube.com/watch?v=z6IUzv4BJG8&ab_chAnnel=FrancescoPeruzzi
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的移相器中的寻路动画全部内容,希望文章能够帮你解决移相器中的寻路动画所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。