towers_is_shot
This commit is contained in:
26
towers.cpp
26
towers.cpp
@@ -34,7 +34,8 @@ bool Towers::addTower(int playerId, int srcId, QPoint pos)
|
||||
if (gameData->map->addTowerOnMap(playerId,pos))
|
||||
{
|
||||
tw.pos = pos;
|
||||
gameData->map->printMap();
|
||||
qDebug() << "tw" << pos;
|
||||
//gameData->map->printMap();
|
||||
gameData->curTowers.insert(tw.pos,tw);
|
||||
return true;
|
||||
}
|
||||
@@ -56,20 +57,28 @@ void Towers::update()
|
||||
if ((*i).build < stw.buildTime)
|
||||
{
|
||||
(*i).build++;
|
||||
qDebug() << "building tower ..." << (*i).build;
|
||||
} else {
|
||||
if (!(gameData->curAliens.contains((*i).aim)))
|
||||
(*i).aim = -1;
|
||||
else
|
||||
{
|
||||
if (distance2((*i).pos,gameData->curAliens.value((*i).aim).pos) > stw.radius*stw.radius)
|
||||
(*i).aim = -1;
|
||||
}
|
||||
if (gameData->players.at((*i).PlayerId)->selectAlienId > 0)
|
||||
{
|
||||
AlienType al = gameData->curAliens.value(gameData->players.at((*i).PlayerId)->selectAlienId);
|
||||
float dist = (al.pos.x() - (*i).pos.x())*(al.pos.x() - (*i).pos.x()) + (al.pos.y() - (*i).pos.y())*(al.pos.y() - (*i).pos.y());
|
||||
if (dist < stw.radius) (*i).aim = al.id;
|
||||
if (distance2(al.pos, (*i).pos) < stw.radius*stw.radius) (*i).aim = al.id;
|
||||
}
|
||||
if ((*i).aim < 0)
|
||||
{
|
||||
for (QHash<int, AlienType>::iterator j = gameData->curAliens.begin(); j != gameData->curAliens.end(); ++j)
|
||||
{
|
||||
float dist = ((*j).pos.x() - (*i).pos.x())*((*j).pos.x() - (*i).pos.x()) + ((*j).pos.y() - (*i).pos.y())*((*j).pos.y() - (*i).pos.y());
|
||||
if (dist < stw.radius) (*i).aim = (*j).id;
|
||||
else (*i).aim = -1;
|
||||
float dist = distance2((*i).pos, (*j).pos);
|
||||
//qDebug() << "dist=" << dist << "radius=" << stw.radius*stw.radius;
|
||||
if (dist < stw.radius*stw.radius) (*i).aim = (*j).id;
|
||||
//else (*i).aim = -1;
|
||||
}
|
||||
}
|
||||
// TODO: rotate tower to aim
|
||||
@@ -78,8 +87,13 @@ void Towers::update()
|
||||
else
|
||||
{
|
||||
if ((*i).aim > 0)
|
||||
{
|
||||
(*i).reload = 0;
|
||||
emit shot(stw.splashes.at(0), 0, (*i));
|
||||
qDebug("shot!");
|
||||
}
|
||||
}
|
||||
}
|
||||
qDebug() << "aim=" << (*i).aim;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user