现在我正在用 C++ 制作乒乓球游戏,现在我已经制作了一个 paddle
和 ball
,它们都继承自 entity
包含实体的坐标
和边界框
(可以是圆形或多边形),我还实现了一个函数entity.isColliding(entity)
这很容易判断任何两个实体的实体是否发生碰撞。
现在我想让球移动,当它与实体碰撞时,它会反转正确的速度坐标(x 或 y)。我想制作一个函数 canMove()
,它将移动并检查碰撞以及是否向后移动,但我不知道如何检查是否需要反转 x 或 y 速度坐标我知道已经发生或将会发生碰撞。
有什么建议吗?
最佳答案
嗯,如果我对你的问题的理解正确的话......反转速度坐标中右边的一个可以让你的球恢复它应该的方式行进,而反转另一个可以让它恢复进入墙壁(但是从不同的角度)。
我不知道你的 canMove()
函数有多快,但如果它足够快,也许你可以这样试试:
- 反转 x 坐标,如果它有效,那就是那个
- 如果不起作用,则反转 y 坐标
- 如果这两个都不起作用,那么你处于特殊情况(例如角落) - 反转两者:D
关于c++ - C++中的乒乓球游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7117678/