【发布时间】:2019-04-01 18:33:54
【问题描述】:
我有一个在 Phaser 2 中制作的蛇游戏。我正在尝试创建一个 Phaser 3 版本。当我的蛇变得太长时,它真的会滞后。这是 Phaser 2 的原始代码
var part = snakePath.pop();
part.setTo(snakeHead.x, snakeHead.y);
snakePath.unshift(part);
for (var i = 1; i <= numSnakeSections - 1; i++)
{
snakeSection[i].x = (snakePath[i * snakeSpacer]).x;
snakeSection[i].y = (snakePath[i * snakeSpacer]).y;
if(i==numSnakeSections-3){
emitter.x = snakeSection[i].x;
emitter.y = snakeSection[i].y;
}
}
snakePath 是一个数组,蛇的每个部分都将跟随。每个snakeSpace 是每个正文部分之间的空间量。
Phaser 3 的版本如下:
var part = snakePath.pop();
part=new Phaser.Geom.Point(snakeHead.x, snakeHead.y);
snakePath.unshift(part);
for (var i = 1; i <= numSnakeSections - 1; i++)
{
snakeSection[i].x = (snakePath[i * snakeSpacer]).x;
snakeSection[i].y = (snakePath[i * snakeSpacer]).y;
}
由于游戏无法跟上渲染的速度,身体部分之间的距离会变得很远。有解决办法吗?
附:我的代码基于 Phaser 2 示例:https://phaser.io/examples/v2/arcade-physics/snake
【问题讨论】:
标签: javascript game-engine game-physics