0

我来自 Phaser + Tiled 世界,如果我需要游戏世界中的一些矩形区域(如玩家区域、产卵区域等),我可以在 Tiled 中绘制矩形,然后从 Phaser.js 获取它的坐标和根据需要使用。我似乎坚持在 Godot 中做类似的事情。

对于某些任务,我可以使用带有内部矩形和碰撞事件的 Area2D。但这并不总是足够的。

如何在屏幕上定义矩形并获取其坐标?对于 Sprite 对象和 Node2D,我无法获得边界矩形。我可以使用 Area2D + Rectangle 并参考矩形的“范围”属性来获取宽度/高度,但这对我来说似乎是开销 - Area2D 用于碰撞检测。

我一般可以做什么?对于以下场景,Godot 可以做什么?

  1. 相机限制。我有带有背景渐变的 Sprite,我将其缩放到所需的世界大小,并且我想对该 Sprite 的宽度/高度设置相机限制。
  2. 英雄移动限制。玩家无法进入世界的一半,因此任何向 x > MIDDLE 的移动都将被拒绝。我可以在代码中设置常量 MIDDLE,但我想将允许的区域绘制为矩形并引用它的坐标。
  3. 产卵区。标记世界上的某个地方(可能只是点,而不是矩形),新对象应由代码创建。
4

1 回答 1

0

您可以在脚本中使用Rect2类来定义自定义矩形。然后,您可以使用它来检查它是否包含 Vector2 或另一个 Rect2。

于 2019-01-11T11:14:21.223 回答