Beispiel #1
0
void Hit::moveWeapon(){
    if(data(0) == ARROW || data(0) == SHELL){
        if(dir == R){
            setPos(x()+10, y());
        }
        else if(dir == L){
            setPos(x()-10, y());
        }
        else if(dir == U){
            setPos(x(), y()-10);
        }
        else if(dir == D){
            setPos(x(), y()+10);
        }
        QGraphicsItem* obstacle = itemCollidesWith();
        if (obstacle){
            damageCalculation(obstacle, power_value);
            delete this;
        }
    }
    else if(data(0) == SWORD || data(0) == FIST){
        if(dir == R){
            setPos(x()+15, y());
        }
        else if(dir == L){
            setPos(x()-15, y());
        }
        else if(dir == U){
            setPos(x(), y()-15);
        }
        else if(dir == D){
            setPos(x(), y()+15);
        }
        QGraphicsItem* obstacle = itemCollidesWith();
        if (obstacle){
            damageCalculation(obstacle, power_value);
            delete this;
        }
        else
            delete this;
    }
}
Beispiel #2
0
//размещаем смайл на карте. для того, чтобы карта была сеткой, положение мыши округляем до ближайщего квадрата размером 50х50
void MvScene::placeSmile(float x, float y)
{
        QGraphicsItem *	smile = addPixmap(QPixmap("Smile.png"));
        div_t x1 = div(x,50);
        div_t y1 = div(y,50);
        smile->translate(x1.quot*50, y1.quot*50);
        if (itemCollidesWith(smile)->data(0)=="Map")
             smile->setData(0, "Smile");

        else{
            removeItem(smile);
        }
}