【问题标题】:Getting Contact Information with Tiles in Godot在 Godot 中使用 Tiles 获取联系信息
【发布时间】:2020-10-21 06:44:56
【问题描述】:

我能否以某种方式获取玩家已触摸资源 (tilemap.res) 中特定图块的信息? 有必要确定它站在哪个瓷砖上(例如,在陆地上还是在水中)

【问题讨论】:

    标签: game-engine game-physics game-development godot


    【解决方案1】:

    这取决于您期望的行为类型。有两种主要方法可以做到这一点:

    1. 在您希望受磁贴影响的每个单独脚本中,每次移动时获取它所在的磁贴,然后直接从那里运行逻辑。
    2. 如上所述,每次移动时获取单元所在的图块,但不是每次都运行逻辑,而是在图块更改时发出信号,并保持当前图块缓存,以便您检查它何时在新瓷砖;让 TileMap 本身附加到信号上,当它接收到信号时,对 Node2D 进行操作,直到它离开。这就是我要做的。

    找到瓦片的具体方法是TileMap.world_to_map(TileMap.get_cellv(Node2D.position))--你只需要Node2D和TileMap,就可以用上面两种方法在同一个函数中得到。

    从技术上讲,您还可以使用TileMap.get_used_cells_by_id 根据各个位置的图块在程序上将Area2Ds 添加到图块地图中,确保ID 是具有特殊行为的ID,然后将TileMap 附加到这些区域的@987654323 @ 和 body/area_exited 并使用它,但是当您可以直接检查 Node2D 的磁贴时,不需要发送大量 Area2D。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多