what the BUG in updateAliens()??

This commit is contained in:
2009-09-06 01:11:19 +04:00
parent 77da6cad14
commit 4e723909e7
14 changed files with 98 additions and 67 deletions

View File

@@ -56,10 +56,10 @@ void adpainter::drawgrid()
}
void adpainter::drawAliens(QVector<QPointF> path, FPVector * position)
void adpainter::drawAliens(Alien * al,AlienImages * pixmaps)
{
float tmpdx,tmpdy,arctg,tmpdx1,tmpdy1;
arctg = 0;
//float tmpdx,tmpdy,arctg,tmpdx1,tmpdy1;
//arctg = 0;
painter.begin(buff);
pen->setColor(QColor::fromRgb(qRgb(80,200,100)));
brush->setColor(QColor::fromRgb(qRgb(230,10,10)));
@@ -67,21 +67,21 @@ void adpainter::drawAliens(QVector<QPointF> path, FPVector * position)
painter.setPen(*pen);
painter.setBrush(*brush);
painter.drawPixmap(0,0,*background);
for (int i = 0; i < path.size(); i++){
painter.drawEllipse(path[i].x() * cellsize +1, path[i].y() * cellsize +1, cellsize - 2, cellsize - 2);
for (int i = 0; i < al->path.size(); i++){
painter.drawEllipse(al->path[i].x() * cellsize +1, al->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 + 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);
position->angle = 180*(-arctg)/3.1415;
if (tmpdy1 < 0) position->angle = 180 + position->angle;
if (AlienPix.size() > 0) {
//tmpdx = position->pnt.x() - path.at(StepAlien).x()*cellsize;
//tmpdy = position->pnt.y() - path.at(StepAlien).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);
//position->angle = 180*(-arctg)/3.1415;
//if (tmpdy1 < 0) position->angle = 180 + position->angle;
//if (AlienPix.size() > 0) {
//qDebug() << "angle:" << position->angle;
if (qAbs(tmpdx) < 1 && qAbs(tmpdy) < 1) StepAlien++;
/* if (qAbs(tmpdx) < 1 && qAbs(tmpdy) < 1) StepAlien++;
else {
if (qAbs(tmpdx) <= qAbs(tmpdy)) {
if (tmpdy < 0) position->pnt.ry()++;
@@ -91,18 +91,19 @@ void adpainter::drawAliens(QVector<QPointF> path, FPVector * position)
if (tmpdx < 0) position->pnt.rx()++;
else position->pnt.rx()--;
}
}
painter.translate(position->pnt.x()+cellsize/2, position->pnt.y()+cellsize/2);
painter.rotate(position->angle);
painter.drawPixmap(-cellsize, -cellsize, cellsize*2, cellsize*2, AlienPix.at(AnimAlien));
AnimAlien++;
if (AnimAlien >= AlienPix.size()) AnimAlien = 0;
if (StepAlien >= path.size()) {
}*/
painter.translate(al->Position.pnt.x()+cellsize/2, al->Position.pnt.y()+cellsize/2);
painter.rotate(al->Position.angle);
painter.drawPixmap(-cellsize, -cellsize, cellsize*2, cellsize*2, pixmaps->pix.at(al->PicIndex));
//AnimAlien++;
//if (AnimAlien >= AlienPix.size()) AnimAlien = 0;
/*if (StepAlien >= path.size()) {
StepAlien = 0;
position->pnt = path.at(0);
}
position->pnt.setX(path.at(0).x()*cellsize);
position->pnt.setY(path.at(0).y()*cellsize);
}*/
//qDebug() << StepAlien;
}
//}
painter.end();
}