1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
void Map::mouseReleaseEvent(QMouseEvent *event)
{
if(event->pos().x()<0 || event->pos().y()<0)
return;
if(event->button() == Qt::LeftButton)
{
leftMousePressed = false;
}
if(event->button() == Qt::RightButton)
{
rightMousePressed = false;
posCurseur = event->pos();
int width = (posCurseur.x()-posCurseur.x()%32) - (posAncienCurseur.x()-posAncienCurseur.x()%32);
int height = (posCurseur.y()-posCurseur.y()%32) - (posAncienCurseur.y()-posAncienCurseur.y()%32);
if(width < 0)
{
width -= 32;
posCurseur.setX(event->x()-event->x()%32);
tailleCurseur.setWidth(-width);
source.resize(-width/32);
}
else
{
width += 32;
posCurseur.setX(posAncienCurseur.x());
tailleCurseur.setWidth(width);
source.resize(width/32);
}
if(height < 0)
{
height -= 32;
posCurseur.setY(event->y()-event->y()%32);
tailleCurseur.setHeight(-height);
for(int x=0 ; x<source.size() ; x++)
source[x].resize(-height/32);
}
else
{
height += 32;
posCurseur.setY(posAncienCurseur.y());
tailleCurseur.setHeight(height);
for(int x=0 ; x<source.size() ; x++)
source[x].resize(height/32);
}
for(int x=0 ; x<source.size() ; x++)
{
for(int y=0 ; y<source.at(x).size() ; y++)
{
source[x][y] = map.at(coucheActuelle).at((posCurseur.x()-posCurseur.x()%32)/32 + x).at(
(posCurseur.y()-posCurseur.y()%32)/32 + y);
}
}
}
QLabel::mouseReleaseEvent(event);
} |