Почему моя игра намного медленнее в Phaser 3, когда я пытаюсь перенести ее из Phaser 2? - PullRequest
1 голос
/ 01 апреля 2019

У меня есть игра со змеями, которую я сделал в 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

1 Ответ

0 голосов
/ 01 апреля 2019

Обнаружено, что мои спрайт-изображения были слишком большими. Это было 1000x1000. Я установил его на 25x25, и он работал нормально

...