我有两个函数将用于检查屏幕上对象之间的碰撞,因为这些函数会经常执行,我想确保它们以最高效率运行,并且因为它们目前看起来很混乱,我想知道我是否可以得到你的帮助。
我的函数如下:这是实际在对象上调用的函数:
bool ScreenObject::intersects(ScreenObject & a,ScreenObject & b) {
if(inter(a,b))
return true;
else
return inter(b,a);
}
这是国际间:
bool inter(ScreenObject & a,ScreenObject & b) {
if(a->getsx()>b->getsx()) {
if(a->getsx()<b->getSxmax()) {
if(a->getsy()>b->getsy())) {
if(a->getsy<b->getSymax()) {
return true;
}
} else {
if(b->getsy()>a->getsy())) {
if(b->getsy<a->getSymax()) {
return true;
}
}
}
}
}
return false;
}
getx/getsy 返回 x/y 的最小值(即对象的左下角),而 getSxmax/getSymax 返回最大值。我的问题是,有没有办法让这段代码变得更好,因为目前这似乎执行得很差。