c++ - C++中的乒乓球游戏

标签 c++ collision-detection pong

现在我正在用 C++ 制作乒乓球游戏,现在我已经制作了一个 paddleball,它们都继承自 entity 包含实体的坐标边界框(可以是圆形或多边形),我还实现了一个函数entity.isColliding(entity) 这很容易判断任何两个实体的实体是否发生碰撞。

现在我想让球移动,当它与实体碰撞时,它会反转正确的速度坐标(x 或 y)。我想制作一个函数 canMove() ,它将移动并检查碰撞以及是否向后移动,但我不知道如何检查是否需要反转 x 或 y 速度坐标我知道已经发生或将会发生碰撞。

有什么建议吗?

最佳答案

嗯,如果我对你的问题的理解正确的话......反转速度坐标中右边的一个可以让你的球恢复它应该的方式行进,而反转另一个可以让它恢复进入墙壁(但是从不同的角度)。

我不知道你的 canMove() 函数有多快,但如果它足够快,也许你可以这样试试:
- 反转 x 坐标,如果它有效,那就是那个
- 如果不起作用,则反转 y 坐标
- 如果这两个都不起作用,那么你处于特殊情况(例如角落) - 反转两者:D

关于c++ - C++中的乒乓球游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7117678/

相关文章:

c++ - 与 OpenSSL 的多线程通信

c++ - 用 boost 写一个 gz 流

c++ - 修改无窗口 QLabel 的 Alpha channel 透明度

c++ - 圆和线段之间的错误碰撞检测

c++ - 使用 QML 绘制图形项目的最佳方式是什么?

Java pong 无法同时移动两个 Racket

c++ - SDL 在屏幕上显示分数

c# - 在 VS 中从 C# 调用 C++ DLL 失败。在 VS 外运行 exe,它可以工作

javascript - 检测两个 div 碰撞的最有效方法

c# - 如何使球向不同方向移动?