我对这一切有点陌生,但我正在尝试用 C++ 制作一个简单的 2D 游戏。 我决定做一种迷宫类型的游戏,为此我正在做的是将迷宫绘制为纹理,然后在我的角色在这个迷宫中移动时使用另一个纹理。
但是,我在碰撞检测方面遇到了很大的困难,因此我的角色不会只是穿过墙壁。有人告诉我可以使用 glReadPixels 来查找背景的颜色,但每当我尝试这样做时,它都会忽略颜色并继续穿过墙壁。
谁能帮我解决这个问题并告诉我该怎么做,因为我在任何地方都找不到任何可以提供帮助的东西。 提前致谢。
最佳答案
根据迷宫类型,如果你只有单位长度的垂直和水平墙壁,你可以用二维数组/矩阵表示迷宫和当前位置,并根据内容决定新位置是否可以移动迷宫矩阵中的新位置。
您将不得不对矩阵坐标和屏幕坐标进行一些转换
优点:
- 你不需要从屏幕上看
- 迷宫可以比屏幕上显示的更大——只绘制相关部分
缺点:
- 你只能有“bolck”类型的地形(例如垂直/水平墙)
- 如果你想添加移动的敌人,碰撞检测可能会太粗糙(你不能“仅仅通过头发/像素”来避免怪物)
关于c++ - 简单的二维碰撞检测c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10095076/