Как зациклить / перезапустить движение спрайта на статической карте в Phaser3 - PullRequest
1 голос
/ 05 мая 2019

Я работаю над игрой типа Super Mario War и хочу, чтобы игроки могли пробежать через правую часть экрана и оказаться в левой части. Что-то вроде того, что вы видите ниже с желтым Марио:

В идеале это будет работать так, когда персонаж может быть идеально разделен с одной стороны на другую. Вы видели подобный прецедент или есть встроенный способ сделать это с Phaser3?

Две мысли, которые у меня были до сих пор. Я мог бы просто проверить, находится ли игрок вне экрана справа, затем вручную изменить положение x влево, но это не получило бы хорошего разделения, которое вы видите выше, поэтому должна быть некоторая «слепая зона», где игрок вообще не видно.

Другая вещь, которую я мог бы сделать, это дублировать одного игрока, если они выходят за пределы экрана с одной стороны, но это кажется слишком сложным и, вероятно, вызовет проблемы с крайними случаями.

Примечание : Вот как они делали это в оригинальной игре, но я не думаю, что это даст мне эффект разделения в Phaser: flipsidesifneeded .

1 Ответ

0 голосов
/ 07 мая 2019

Вы можете попробовать тот же тест, что и в оригинальной игре, попробовав что-то вроде этого

if (player.x < 0){
    player.x = 640
} else if (player.x > 640){
    player.x = 0
}

Подробнее в этом jsfiddle https://jsfiddle.net/nazimboudeffa/L7pqd5h6/

...