<分区>
我目前正在开发一款 C++ 控制台游戏。 该游戏由一个带有 2D 瓷砖阵列的棋盘类组成。
我还有针对玩家、箭头和元素的游戏部件类。
我需要能够处理玩家/箭头/元素之间的每一次碰撞,我想知道两种可能的解决方案。
2) 有一个外部的“CollisionDetector”类,它将扫描所有瓷砖/碎片的碰撞并在那里处理它们。
你怎么看?
标签 c++
<分区>
我目前正在开发一款 C++ 控制台游戏。 该游戏由一个带有 2D 瓷砖阵列的棋盘类组成。
我还有针对玩家、箭头和元素的游戏部件类。
我需要能够处理玩家/箭头/元素之间的每一次碰撞,我想知道两种可能的解决方案。
2) 有一个外部的“CollisionDetector”类,它将扫描所有瓷砖/碎片的碰撞并在那里处理它们。
你怎么看?
最佳答案
我会创建一个看起来像这样的函数:
void Object::OnCollision(Object collision_with); // "Object" is a generic type
// of an object in the game
此函数将处理碰撞。 为了找到碰撞,每当一个对象进入一个图 block (enterTile) 时,您可以在该图 block 中搜索其中包含的对象,并调用它们的 OnCollision 函数。 这当然意味着将项目保留在板上,作为它们各自磁贴中的一些列表。
所以我基本上建议您使用第一个解决方案。
另请注意,如果您的看板太大,可能需要更多时间才能完成所有看板。因此,如果它相当大,请考虑您提出的第二种解决方案。
关于c++ - 在基于图 block 的游戏中将碰撞处理放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13218798/