Как сделать так, чтобы Sprite вращался вокруг точки в Phaser 3? - PullRequest
0 голосов
/ 16 апреля 2019

В моей игре Phaser 3 у меня есть объект, который я хочу вращать вокруг точки (x, y) в круге определенного радиуса, скажем, 5 единиц.Все учебники в Phaser 2, поэтому, пожалуйста, помогите мне.

Ответы [ 2 ]

2 голосов
/ 17 апреля 2019

Вы можете использовать Phaser.Actions.RotateAroundDistance .Вот пример здесь

В случае разрыва связи в будущем параметры будут

RotateAroundDistance(point, x, y, angle, distance):

. Ниже приведено примерное использование группы объектов:

Phaser.Actions.RotateAroundDistance(group.getChildren(), { x: 400, y: 300 }, 0.02, 200)
1 голос
/ 16 апреля 2019

Я бы предположил установить anchor спрайта вне фактического спрайта. Якорь - это точка поворота или «ручка» на спрайте, фактически смещение для положения x, y, угла и т. Д. Чем дальше вы установите якорь, тем больше будет радиус.

А затем добавьте анимацию, чтобы повернуть угол. Так что-то вроде:

// setAnchor, x offset = 10 to the right of the sprite, y offset = center of sprite
mysprite.setAnchor(10.0, 0.5);

var tween = game.tweens.add({
  targets: mysprite,
  angle: 360.0,
  duration: 1500,
  repeat: 0
});
...