Каков метод Godot для определения (и ссылки) пользовательских областей прямоугольника? - PullRequest
0 голосов
/ 02 января 2019

Я пришел из мира Phaser + Tiled, где, если мне нужна некоторая область прямоугольника в игровом мире (например, область игрока, область нереста и т. Д.), Я могу просто нарисовать прямоугольник в Tiled и затем получить его координаты из Phaser и используйте как мне нужно. И я, кажется, застрял, чтобы сделать подобные вещи в Годо.

Для некоторых задач я могу использовать Area2D с прямоугольником внутри и событиями столкновения. Но этого не всегда достаточно.

Как я могу просто определить прямоугольник на экране и получить его координаты? Для объекта Sprite и для Node2D я не могу получить ограничивающий прямоугольник. Я могу использовать Area2D + Rectangle и обратиться к свойству прямоугольника 'экстент', чтобы получить ширину / высоту, но для меня это кажется чрезмерным - Area2D используется при обнаружении столкновений.

Что я могу сделать в целом? А что можно сделать в Годо для следующих сценариев?

  1. Ограничения камеры. У меня есть Sprite с градиентом фона, который я масштабирую до необходимого размера мира, и я хотел бы установить ограничения камеры на ширину / высоту этого Sprite.
  2. Границы движения героя. Половина мира недоступна для игрока, поэтому любой переход на x> MIDDLE будет запрещен. Я могу просто установить константу MIDDLE в коде, но я хотел бы нарисовать разрешенную область в виде прямоугольника и сослаться на ее координаты.
  3. Область появления. Отметьте место в мире (это может быть просто точка, а не прямоугольник), где новые объекты должны создаваться кодом.

1 Ответ

0 голосов
/ 11 января 2019

Вы можете использовать класс Rect2 в скрипте для определения пользовательских прямоугольников. Затем вы можете использовать его, чтобы проверить, содержит ли он Vector2 или другой Rect2.

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