物体碰撞

时间:2015-04-22 16:57:14

标签: c++ qt object collision-detection

我正在创建一个功能,检查汽车是否发生碰撞,如果它们的速度降低了。它适用于不同的汽车类型,但是当相同的汽车类型碰到相同的汽车类型时它们都停止

使用计时器不断调用此方法。

基本上如果汽车点击 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; 
 }
}

我想检查一下,如果它击中相同的对象类型,它就不会停止。

非常感谢任何帮助。

0 个答案:

没有答案