У меня есть игра со змеями, которую я сделал в 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;
}
Сегменты тела между ними становятся далеко друг от друга, поскольку игра не успевает за рендерингом.Есть ли решение?
PS Я основал свой код на примере Phaser 2: https://phaser.io/examples/v2/arcade-physics/snake