gpt4 book ai didi

java - libgdx 如何检测冲突?

转载 作者:太空宇宙 更新时间:2023-11-04 10:35:36 25 4
gpt4 key购买 nike

我在检测碰撞时遇到问题。我使用 TiledMap 并创建了一个虚拟操纵杆,这样就可以向各个方向移动,而不仅仅是左、右、上、下。视角与顶部成 90 度角。

我不知道这是否是 TiledMap 的目的,但我认为这些 map 很容易创建。但现在我在碰撞检测方面遇到了问题。例如,由于 map 的排列方式不像棋盘,因此我需要检查整个 Sprite 是否发生碰撞。你能解释一下它是如何工作的吗?

谢谢

最佳答案

首先我建议您结帐this question澄清一些事情,并了解碰撞检测如何与 TiledMaps 配合使用的基本概念。

总结:使用 TileEditor,您可以向 TiledMap 添加不同的图层。这些层之一可以是可用于碰撞的对象层。有关如何创建和访问图层的信息,请查看链接的问题。

对于您的示例,需要首先解决一些核心问题:

  1. 碰撞物体的形状和大小是什么?
  2. 对象可以在两个图 block 之间移动吗?
  3. 碰撞时会发生什么?

《口袋妖怪》是一个 super 简单的例子。玩家的大小恰好是一 block 瓷砖的大小,并且不能在它们之间移动。如果发生碰撞,玩家就无法移动。

如果这是您想要的,您可以在移动任何对象之前添加一个检查:如果下一个图 block 无效,则不要移动该对象。对于碰撞检查,您只需调整 first answer 中的示例代码即可。 .

在光谱的另一端,您可以拥有具有不同比例的不同形状的对象,这些对象具有动态速度并且应该在 TileMap 上反弹对象。在这种情况下,使用 box2d 进行碰撞检测可能会很聪明,如 this answer 中所示。 .

因此,根据您的需求,尝试调整我链接的任何答案。也许只是从一个 super 简单的盒子碰撞开始尝试扩展你的代码。

关于java - libgdx 如何检测冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49524085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com