c++ - 检查来自不同类的两个 Rect 之间的碰撞

标签 c++ sdl sdl-2

我有两个类,第一个是 Foo,它有坐标、速度和函数,第二个是 Balloon,里面有类似的东西。我想检查它们之间的碰撞,我有 collision_check 函数工作正常,它不属于任何类。两个类( Foo 和 Balloon )都在各自的类中定义了坐标。第一种方式:我也尝试将他们的 SDL_Rects 放入他们的类中,但是当我在 main() 中调用 collision_check 时,它找不到 SDL_Rects,因为它们在类中。第二种方式:所以我尝试将 SDL_Rects 放在 main() 中并定义它们,但是我无法将 foos 的坐标分配给它们,因为坐标变量在类中。第三种方式:然后我尝试将坐标变量移出类,但是所有函数都不起作用,因为它们也在类中。我怎样才能使用 collide_check 功能.....我卡住了。尝试为编码不足 4 个月的人简单地解释一下。

最佳答案

您应该创建一个抽象类“AbstractCollisionObject”类型。 然后继承它创建BoundingBoxCollisionObject和CircleCollisionObject。

在您的函数 collision_check 中,您获取 2 个 AbstractCollisionObjects 并进行测试。

您在场景中处理的每个元素都应该关联一个 AbstractCollisionObject。

关于c++ - 检查来自不同类的两个 Rect 之间的碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34515755/

相关文章:

c++ - SDL 在 Linux 上运行几秒钟后没有响应

c++ - 为什么 SDL2 提供的事件值不正确?

c++ - getline 不等待输入

c++ - 将具有嵌套类型的类分离为标题和源

c++ - 从自定义链接列表打印值时陷入无限 while 循环

c++ - SDL2 似乎每 50 毫秒才轮询一次输入

c++ - 使用 SDL2 操作硬件纹理

c++ - 如何预测 linux c/c++ 程序中的内存泄漏?

c++ - SDL 无法在 native 环境中编译

c - 确定 SDL_surface 的宽度/高度的 SDL_function?