游戏中碰撞检测代码
以下是一种基本的碰撞检测代码:
bool checkCollision(GameObject* obj1, GameObject* obj2) {
int obj1Left = obj1->getX();
int obj1Right = obj1Left + obj1->getWidth();
int obj1Top = obj1->getY();
int obj1Bottom = obj1Top + obj1->getHeight();
int obj2Left = obj2->getX();
int obj2Right = obj2Left + obj2->getWidth();
int obj2Top = obj2->getY();
int obj2Bottom = obj2Top + obj2->getHeight();
if (obj1Left > obj2Right || obj1Right < obj2Left || obj1Top > obj2Bottom || obj1Bottom < obj2Top) {
return false; // No collision
}
else {
return true; // Collision detected
}
}
这个函数接受两个 GameObject 类型的指针作为参数,其中 GameObject 是一个游戏对象的抽象类。函数首先获取每个对象的左、右、上、下边界,然后检查它们是否重叠。如果没有重叠,则返回 false 表示没有碰撞,否则返回 true 表示检测到碰撞。请注意,这只是一种简单的检测方法,可能不适用于所有游戏和物体
原文地址: http://www.cveoy.top/t/topic/e9lr 著作权归作者所有。请勿转载和采集!