2

我对这一切有点陌生,但我正在尝试用 C++ 制作一个简单的 2D 游戏。我决定做一种迷宫类型的游戏,我正在做的是将迷宫绘制为纹理,然后当我的角色在这个迷宫中移动时使用另一个纹理。

但是,我在碰撞检测方面非常挣扎,因此我的角色不只是穿过墙壁。有人告诉我,我可以使用 glReadPixels 来查找背景的颜色,但是每当我尝试这样做时,它都会忽略颜色并继续穿过墙壁。

任何人都可以帮我解决这个问题并告诉我该怎么做,因为我在任何地方都找不到任何可以提供帮助的东西。提前致谢。

4

1 回答 1

1

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

您将不得不对矩阵坐标和屏幕坐标进行一些转换

好处:

  • 你不需要从屏幕上阅读
  • 迷宫可以比屏幕上的大——只画相关部分

缺点:

  • 你只能有“bolck”类型的地形(例如垂直/水平墙)
  • 如果你想添加移动敌人,碰撞检测可能太粗糙(你不能“仅仅通过头发/像素”避开怪物)
于 2012-04-10T19:29:22.100 回答