简单的二维碰撞检测c ++

时间:2012-04-10 19:22:38

标签: c++ 2d collision-detection glreadpixels

我对这一切都不熟悉,但我试图让自己成为一个简单的c ++ 2D游戏。 我决定做一种迷宫型游戏,我正在为此做的是将迷宫作为纹理绘制出来,然后在我的角色在这个迷宫内移动时再使用另一个纹理。

然而,我在碰撞检测方面非常努力,所以我的角色不仅仅是穿过墙壁。有人告诉我,我可以使用glReadPixels找到背景的颜色,但每当我尝试它时,它只是忽略了颜色,仍然继续穿过墙壁。

任何人都可以帮助我,并告诉我如何做到这一点,因为我找不到任何可以帮助的地方。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

根据迷宫类型,如果您只有单位长度的垂直和水平墙,您可以在2D阵列/矩阵中表示迷宫和当前位置,并根据内容确定新位置是​​否可以进入迷宫矩阵中的新位置。

您必须对矩阵坐标和屏幕坐标进行一些转换

优点:

  • 您无需从屏幕上阅读
  • 迷宫可能大于屏幕上的适合度 - 仅绘制相关部分

缺点:

  • 你只能拥有“bolck”型地形(例如垂直/水平墙)
  • 如果你想添加移动敌人,碰撞检测可能太粗糙(你无法通过头发/像素来避免怪物)。