Example #1
0
/**
  Modify the position of all active projectiles,
  */
void Cannon::updateProjectiles(){
    QListIterator<Projectile *> i(projectiles);
    Projectile *p;
    while (i.hasNext()){
        p = i.next();
        p->updatePosition();
        QList<QGraphicsItem *> collisions = p->collidingItems();
        if(collisions.size() > 0){
            //qDebug()<<"collision size:"<<collisions.size();
            QVector2D newVelocity = p->getVelocity();
            for (int i = 0; i < collisions.size(); ++i) {
                QGraphicsItem *ob = collisions.at(i);
                newVelocity = p->resolveCollisionType(ob);
            }
            p->setVelocity(newVelocity);
        }
    }
}