added some graphics but only for debug

This commit is contained in:
peri4
2010-08-27 14:04:05 +04:00
parent b3854e867d
commit 95f3fb74fa
37 changed files with 876 additions and 707 deletions

View File

@@ -1,6 +1,6 @@
#include "adcore.h"
adCore::adCore(QObject *parent) :
AD_Core::AD_Core(QObject *parent) :
QThread(parent)
{
step = 0;
@@ -8,34 +8,75 @@ adCore::adCore(QObject *parent) :
//addata = new Game_Data(admap);
adloader = new Loader();
adloader->load("data2.xml");
//adloader->save("data2.xml");
addata = adloader->loadlevel(1);
if (addata != 0) qDebug("Sucsess");
else qDebug("Error");
//admap->load();
//adload->create();
//adload->readAliens();
// Player * pl1 = new Player(0);
else qFatal("Error");
Player * pl1 = new Player(0);
// Player * pl2 = new Player(0);
// addata->players.push_back(pl1);
addata->players.push_back(pl1);
// addata->players.push_back(pl2);
// adaliens = new Aliens(addata);
// adtowers = new Towers(addata);
// adsplashes = new Splashes(addata);
// connect(admap,SIGNAL(RecreateAlienPath(bool*)),adaliens,SLOT(retrace(bool*)));
// adaliens->AddAlien(0);
adaliens = new Aliens(addata);
adtowers = new Towers(addata);
adsplashes = new Splashes(addata);
connect(addata->map,SIGNAL(recreateAlienPath(bool*)),adaliens,SLOT(retrace(bool*)));
// adaliens->addAlien(0);
// adaliens->AddAlien(0);
// adaliens->AddAlien(0);
// for (int i=0; i<qMin(admap->mapsize.width(),admap->mapsize.height()); i++)
// adtowers->AddTower(0,0,QPoint(i,i));
// for (int i=0; i<admap->mapsize.height();i++)
// adtowers->AddTower(1,0,QPoint(admap->mapsize.width()-2,i));
waveInProgress = false;
startTimer(50);
}
void adCore::next()
void AD_Core::next()
{
adtowers->update();
adsplashes->update();
adaliens->update();
waveProcessing();
step++;
}
void AD_Core::timerEvent(QTimerEvent * )
{
next();
}
void AD_Core::nextWave()
{
if (waveInProgress) return;
if (addata->curWave >= addata->waves.size()) {
qDebug("level finished");
return;
}
//wavetime = addata->waves.at(addata->curWave).timeout;
qDebug() << tr("Next wave %1").arg(addata->curWave+1);
wavetime = 0;
waveInProgress = true;
}
void AD_Core::waveProcessing()
{
if (!waveInProgress) return;
if (wavetime <= 0) {
for (int i=0; i<addata->waves.at(addata->curWave).counts.size(); i++) {
if (addata->waves.at(addata->curWave).counts.at(i) > 0) {
adaliens->addAlien(addata->waves.at(addata->curWave).types.at(i));
addata->waves[addata->curWave].counts[i]--;
wavetime = addata->waves.at(addata->curWave).timeout;
return;
}
}
addata->curWave++;
waveInProgress = false;
} else {
wavetime--;
}
}