the Alien going right!

This commit is contained in:
2009-09-03 22:56:39 +04:00
parent 7ecbd3764c
commit 5ec3aa2be9
26 changed files with 203 additions and 160 deletions

View File

@@ -57,12 +57,13 @@ void adpainter::drawgrid()
}
void adpainter::drawAliens(deque<QPointF> path, FPVector * position)
void adpainter::drawAliens(QVector<QPointF> path, FPVector * position)
{
float tmpdx,tmpdy,arctg,tmpdx1,tmpdy1;
//unsigned char dd[4];
//int gg;
arctg = 0;
//qDebug() << path.size();
//QTransform rotated;
painter.begin(buff);
pen->setColor(QColor::fromRgb(qRgb(80,200,100)));
@@ -71,22 +72,23 @@ void adpainter::drawAliens(deque<QPointF> path, FPVector * position)
painter.setPen(*pen);
painter.setBrush(*brush);
painter.drawPixmap(0,0,*background);
for (unsigned int i = 0; i < path.size(); i++){
for (int i = 0; i < path.size(); i++){
painter.drawEllipse(path[i].x() * cellsize +1, path[i].y() * cellsize +1, cellsize - 2, cellsize - 2);
}
tmpdx = position->pnt.x() - path.at(StepAlien).x()*cellsize;
tmpdy = position->pnt.y() - path.at(StepAlien).y()*cellsize;
if (StepAlien + 2 < path.size()) {
tmpdx1 = position->pnt.x() - path.at(StepAlien+2).x()*cellsize;
tmpdy1 = position->pnt.y() - path.at(StepAlien+2).y()*cellsize;
if (StepAlien + 1 < path.size()) {
tmpdx1 = position->pnt.x() - path.at(StepAlien+1).x()*cellsize;
tmpdy1 = position->pnt.y() - path.at(StepAlien+1).y()*cellsize;
}
arctg = atanf(tmpdx1/tmpdy1);
//memcpy(&gg,&arctg,4);
if (tmpdy1 != 0) position->angle = 180*(-arctg)/3.1415;
position->angle = 180*(-arctg)/3.1415;
if (tmpdy1 < 0) position->angle = 180 + position->angle;
if (AlienPix.size() > 0) {
//painter.rotate((arctg/3.1415)*180);
//rotated.rotateRadians(arctg/* + 3.1415/2*/);
//qDebug() << "angle:" << arctg;
qDebug() << "angle:" << position->angle;
//rotated.reset();
if (qAbs(tmpdx) < 1 && qAbs(tmpdy) < 1) StepAlien++;
else {
@@ -108,16 +110,16 @@ void adpainter::drawAliens(deque<QPointF> path, FPVector * position)
}
}
//painter.save();
painter.translate(position->pnt.x()-cellsize,position->pnt.y()-cellsize);
painter.translate(position->pnt.x()+cellsize/2, position->pnt.y()+cellsize/2);
//if (arctg == 0) painter.rotate(90);
//memcpy(dd,&gg,4);
//dd[0]=0xFF;
qDebug() << "angle:" << position->angle;
//qDebug() << "angle:" << position->angle;
//qDebug() << dd[0] << dd[1] << dd[2] << dd[3];
painter.rotate(position->angle);
//position->pnt.setX(path.at(0).x());
//position->pnt.setY(path.at(0).y());
painter.drawPixmap(cellsize/2, cellsize/2, cellsize*2, cellsize*2, AlienPix.at(AnimAlien));
painter.drawPixmap(-cellsize, -cellsize, cellsize*2, cellsize*2, AlienPix.at(AnimAlien));
AnimAlien++;
//painter.restore();
if (AnimAlien >= AlienPix.size()) AnimAlien = 0;