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; } }
//размещаем смайл на карте. для того, чтобы карта была сеткой, положение мыши округляем до ближайщего квадрата размером 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); } }