Как повернуть зону в Phaser 3?

#javascript #phaser-framework

#javascript #phaser-фреймворк

Вопрос:

Кто-нибудь знает, как повернуть зону в Phaser 3?

Я пытаюсь настроить 3 зоны (зарегистрированные в объекте this.zones) для обнаружения столкновений, но я не могу этого добиться, ничего из того, что я пробовал, не работает ни с this.zones.gauche.angle = 45, ни с this.zones.gauche.SetAngle(45). В консоли кажется, что мои зоны повернуты, но их нет в окне игры (я вижу их, потому что они добавлены в статическую группу physics arcade с включенной отладкой). Что я делаю не так? Спасибо!

Немного кода :

 create () {
  this.zones.fond     = this.add.zone(0, 0).setSize(game.CONFIG.width, 170);
  this.zones.gauche   = this.add.zone(0, 0).setSize(170, game.CONFIG.width).setAngle(45);
  this.zones.droite   = this.add.zone(737, 208, 170, game.CONFIG.width).setAngle(-45);

  this.objets.zones   = this.physics.add.staticGroup();
  this.objets.zones.add(this.zones.fond);
  this.objets.zones.add(this.zones.gauche);
  this.objets.zones.add(this.zones.droite);
}// create () {
  

[РЕДАКТИРОВАТЬ] В документации говорится, что это возможно: https://photonstorm.github.io/phaser3-docs/Phaser .GameObjects.Zone.html#угол__привязки

Ответ №1:

Вы можете повернуть зону, но в вашем коде вы создаете физические тела аркады, а не зоны, и ограничение любого физического объекта аркады заключается в том, что он не может вращаться. Он использует только AABB. Вам нужно будет использовать Matter.js если вы хотите повернуть свое физическое тело.

Комментарии:

1. Что ж, я решил это, используя старое доброе математическое решение: с помощью y = ax b мне удается узнать, где находится мой спрайт. Больше нет ни аркадных тел, ни зон. Еще раз спасибо и хорошего дня!