我正在创建一个功能,检查汽车是否发生碰撞,如果它们的速度降低了。它适用于不同的汽车类型,但是当相同的汽车类型碰到相同的汽车类型时它们都停止
使用计时器不断调用此方法。
基本上如果汽车点击 carwithtrailer ,汽车会减速。
但如果汽车点击汽车,他们都会停止,因为它是同一个对象。
---> if语句中的最后一个逻辑是问题
!(typeid(*(colliding_items2[i]))== typeid(this))
QList<QGraphicsItem *> colliding_items2 = collidingItems();
for(int i=0, n= colliding_items2.size();i<n;++i){
if(((typeid(*(colliding_items2[i]))== typeid(carwithtrailer)) ||(typeid(*(colliding_items2[i]))== typeid(car)) ) && (!(typeid(*(colliding_items2[i]))== typeid(this)) )){
speedOfCar = speedOfCar-1;
return;
}
}
我想检查一下,如果它击中相同的对象类型,它就不会停止。
非常感谢任何帮助。