game_in_work_example

This commit is contained in:
unknown
2010-08-31 19:25:29 +04:00
parent d4a9f33816
commit bbb6f9b366
14 changed files with 363 additions and 404 deletions

View File

@@ -11,7 +11,7 @@ AD_Graphics::AD_Graphics(AD_Core *adcore, QWidget *parent) : QGraphicsView(paren
setAlignment(Qt::AlignLeft | Qt::AlignTop); setAlignment(Qt::AlignLeft | Qt::AlignTop);
scene = new QGraphicsScene(); scene = new QGraphicsScene();
setScene(scene); setScene(scene);
//setViewport(new QGLWidget(QGLFormat(QGL::SampleBuffers))); setViewport(new QGLWidget(QGLFormat(QGL::SampleBuffers)));
setViewportUpdateMode(QGraphicsView::FullViewportUpdate); setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
//setDragMode(RubberBandDrag); //setDragMode(RubberBandDrag);
//gsw = new QGraphicsWidget(); //gsw = new QGraphicsWidget();
@@ -56,14 +56,14 @@ void AD_Graphics::drawBackground(QPainter * p, const QRectF & )
pen.setColor(Qt::black); pen.setColor(Qt::black);
brush.setColor(Qt::black); brush.setColor(Qt::black);
} }
// if (cel <= Map::PlayerTower && cel !=Map::Wall) { // if (cel <= Map::PlayerTower && cel !=Map::Wall) {
// pen.setColor(QColor(cel%255,(cel*100)%255,(cel+100)%255)); // pen.setColor(QColor(cel%255,(cel*100)%255,(cel+100)%255));
// brush.setColor(QColor(cel%255,(cel*100)%255,(cel+100)%255)); // brush.setColor(QColor(cel%255,(cel*100)%255,(cel+100)%255));
// } // }
// if (cel >= Map::PlayerAlien) { // if (cel >= Map::PlayerAlien) {
// pen.setColor(Qt::yellow); // pen.setColor(Qt::yellow);
// brush.setColor(Qt::yellow); // brush.setColor(Qt::yellow);
// } // }
if (cel >= Map::Player || (cel <= Map::PlayerTower && cel !=Map::Wall)) if (cel >= Map::Player || (cel <= Map::PlayerTower && cel !=Map::Wall))
{ {
pen.setColor(QColor(qAbs(cel)%255,(qAbs(cel)*100)%255,(qAbs(cel)+100)%255,50)); pen.setColor(QColor(qAbs(cel)%255,(qAbs(cel)*100)%255,(qAbs(cel)+100)%255,50));
@@ -83,15 +83,21 @@ void AD_Graphics::drawBackground(QPainter * p, const QRectF & )
//p->translate(rec.width()/2, rec.height()/2); //p->translate(rec.width()/2, rec.height()/2);
//p->rotate(-90); //p->rotate(-90);
//p->translate(-rec.height()/2, -rec.width()/2); //p->translate(-rec.height()/2, -rec.width()/2);
//QBrush brush;
//brush.setColor(Qt::darkRed);
//brush.setStyle(Qt::DiagCrossPattern);
p->translate((*i).pos * cellSize+QPointF(20,20)); p->translate((*i).pos * cellSize+QPointF(20,20));
p->rotate((*i).angle); p->rotate((*i).angle);
//p->setPen(QColor(0,0,0,0)); //p->setPen(QColor(0,0,0,0));
//p->setBrush(brush); //p->setBrush(brush);
//p->drawRect(QRect(-10,-10,20,20)); //p->drawRect(QRect(-10,-10,20,20));
p->drawImage(QRect(-20,-20,40,40), images[itTowers][0]->at(0)); if ((*i).build < data->players.at((*i).PlayerId)->srcTowers.at((*i).src).buildTime)
{
QBrush brush;
brush.setColor(Qt::darkRed);
brush.setStyle(Qt::DiagCrossPattern);
p->setBrush(brush);
p->drawRect(-20,-20,40,40);
} else {
p->drawImage(QRect(-20,-20,40,40), images[itTowers][(*i).imgType]->at(0));
}
p->resetTransform(); p->resetTransform();
} }
//qDebug() << "a:" << data->curAliens.size(); //qDebug() << "a:" << data->curAliens.size();
@@ -120,12 +126,12 @@ void AD_Graphics::drawBackground(QPainter * p, const QRectF & )
//QBrush brush; //QBrush brush;
//brush.setColor(Qt::red); //brush.setColor(Qt::red);
//brush.setStyle(Qt::SolidPattern); //brush.setStyle(Qt::SolidPattern);
p->translate((*i).pos * cellSize+QPointF(10,10)); p->translate((*i).pos * cellSize);
p->rotate((*i).angle); p->rotate((*i).angle);
//p->setBrush(brush); //p->setBrush(brush);
//p->setPen(QColor(0,0,0,0)); //p->setPen(QColor(0,0,0,0));
//p->drawEllipse(QPoint(),5,5); //p->drawEllipse(QPoint(),5,5);
p->drawImage(QRect(-10,-10,20,20), images[itSplashes][0]->at(0)); p->drawImage(QPoint(-(images[itSplashes][(*i).imgType]->at(0).size().width()/2),-(images[itSplashes][(*i).imgType]->at(0).size().height()/2)), images[itSplashes][(*i).imgType]->at(0));
p->resetTransform(); p->resetTransform();
} }
} }
@@ -149,8 +155,12 @@ void AD_Graphics::loadImages()
break; break;
case itTowers: case itTowers:
images[i].push_back(new Animation(":/images/images/Towers/01_6.png")); images[i].push_back(new Animation(":/images/images/Towers/01_6.png"));
images[i].push_back(new Animation(":/images/images/Towers/00_0.png"));
case itSplashes: case itSplashes:
images[i].push_back(new Animation(":/images/images/Splashes/Rocket.png")); images[i].push_back(new Animation(":/images/images/Splashes/Rocket.png"));
images[i].push_back(new Animation(":/images/images/Splashes/Shot_0.png"));
images[i].push_back(new Animation(":/images/images/Splashes/Smoke_01.png"));
images[i].push_back(new Animation(":/images/images/Splashes/expl.png"));
default: break; default: break;
} }
} }

View File

@@ -24,15 +24,15 @@ AD_Core::AD_Core(QObject *parent) :
// adaliens->addAlien(0); // adaliens->addAlien(0);
// adaliens->AddAlien(0); // adaliens->AddAlien(0);
// adaliens->AddAlien(0); // adaliens->AddAlien(0);
adtowers->addTower(0,0,QPoint(19,7)); adtowers->addTower(0,2,QPoint(22,7));
for (int i=0; i<20;i++) for (int i=0; i<20;i++)
adtowers->addTower(0,0,QPoint(8,20-i)); adtowers->addTower(0,1,QPoint(8,20-i));
for (int i=0; i<20; i++) for (int i=0; i<20; i++)
adtowers->addTower(0,1,QPoint(12,i)); adtowers->addTower(0,0,QPoint(12,i));
for (int i=0; i<20;i++) for (int i=0; i<20;i++)
adtowers->addTower(0,0,QPoint(16,20-i)); adtowers->addTower(0,1,QPoint(16,20-i));
waveInProgress = false; waveInProgress = false;
startTimer(50); startTimer(20);
} }

View File

@@ -1,283 +1,111 @@
<!DOCTYPE QtCreatorProject> <!DOCTYPE QtCreatorProject>
<qtcreator> <qtcreator>
<data> <data>
<variable>RunConfiguration0-BaseEnvironmentBase</variable> <variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="int">2</value>
</data>
<data>
<variable>RunConfiguration0-CommandLineArguments</variable>
<valuelist type="QVariantList"/>
</data>
<data>
<variable>RunConfiguration0-ProFile</variable>
<value type="QString">aliendefender.pro</value>
</data>
<data>
<variable>RunConfiguration0-RunConfiguration.name</variable>
<value type="QString">aliendefender</value>
</data>
<data>
<variable>RunConfiguration0-UseDyldImageSuffix</variable>
<value type="bool">false</value>
</data>
<data>
<variable>RunConfiguration0-UseTerminal</variable>
<value type="bool">false</value>
</data>
<data>
<variable>RunConfiguration0-UserEnvironmentChanges</variable>
<valuelist type="QVariantList"/>
</data>
<data>
<variable>RunConfiguration0-UserSetName</variable>
<value type="bool">false</value>
</data>
<data>
<variable>RunConfiguration0-UserSetWorkingDirectory</variable>
<value type="bool">false</value>
</data>
<data>
<variable>RunConfiguration0-UserWorkingDirectory</variable>
<value type="QString"></value>
</data>
<data>
<variable>RunConfiguration0-type</variable>
<value type="QString">Qt4ProjectManager.Qt4RunConfiguration</value>
</data>
<data>
<variable>activeRunConfiguration</variable>
<value type="int">0</value> <value type="int">0</value>
</data> </data>
<data> <data>
<variable>activebuildconfiguration</variable> <variable>ProjectExplorer.Project.EditorSettings</variable>
<value type="QString">Debug</value>
</data>
<data>
<variable>buildConfiguration-Debug</variable>
<valuemap type="QVariantMap"> <valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value> <value key="EditorConfiguration.Codec" type="QByteArray">System</value>
<value key="QtVersionId" type="int">0</value>
<value key="ToolChain" type="int">0</value>
<value key="addQDumper" type=""></value>
<value key="buildConfiguration" type="int">2</value>
</valuemap> </valuemap>
</data> </data>
<data> <data>
<variable>buildConfiguration-Release</variable> <variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap"> <valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value> <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Настольный компьютер</value>
<value key="QtVersionId" type="int">0</value> <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Target.DesktopTarget</value>
<value key="addQDumper" type=""></value> <value key="ProjectExplorer.Target.ActiveBuildConfiguration" type="int">0</value>
<value key="buildConfiguration" type="int">0</value> <value key="ProjectExplorer.Target.ActiveRunConfiguration" type="int">0</value>
<valuemap key="ProjectExplorer.Target.BuildConfiguration.0" type="QVariantMap">
<valuemap key="ProjectExplorer.BuildConfiguration.BuildStep.0" type="QVariantMap">
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">QtProjectManager.QMakeBuildStep</value>
<valuelist key="QtProjectManager.QMakeBuildStep.QMakeArguments" type="QVariantList"/>
</valuemap>
<valuemap key="ProjectExplorer.BuildConfiguration.BuildStep.1" type="QVariantMap">
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
<value key="Qt4ProjectManager.MakeStep.Clean" type="bool">false</value>
<valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"/>
<value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
</valuemap>
<value key="ProjectExplorer.BuildConfiguration.BuildStepsCount" type="int">2</value>
<valuemap key="ProjectExplorer.BuildConfiguration.CleanStep.0" type="QVariantMap">
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
<value key="Qt4ProjectManager.MakeStep.Clean" type="bool">true</value>
<valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList">
<value type="QString">clean</value>
</valuelist>
<value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
</valuemap>
<value key="ProjectExplorer.BuildConfiguration.CleanStepsCount" type="int">1</value>
<value key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment" type="bool">false</value>
<valuelist key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges" type="QVariantList"/>
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Debug</value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration" type="int">2</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">C:/Users/Andrey/Desktop/build-AD</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">9</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="int">2</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">true</value>
</valuemap>
<valuemap key="ProjectExplorer.Target.BuildConfiguration.1" type="QVariantMap">
<valuemap key="ProjectExplorer.BuildConfiguration.BuildStep.0" type="QVariantMap">
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">QtProjectManager.QMakeBuildStep</value>
<valuelist key="QtProjectManager.QMakeBuildStep.QMakeArguments" type="QVariantList"/>
</valuemap>
<valuemap key="ProjectExplorer.BuildConfiguration.BuildStep.1" type="QVariantMap">
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
<value key="Qt4ProjectManager.MakeStep.Clean" type="bool">false</value>
<valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"/>
<value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
</valuemap>
<value key="ProjectExplorer.BuildConfiguration.BuildStepsCount" type="int">2</value>
<valuemap key="ProjectExplorer.BuildConfiguration.CleanStep.0" type="QVariantMap">
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
<value key="Qt4ProjectManager.MakeStep.Clean" type="bool">true</value>
<valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"/>
<value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
</valuemap>
<value key="ProjectExplorer.BuildConfiguration.CleanStepsCount" type="int">1</value>
<value key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment" type="bool">false</value>
<valuelist key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges" type="QVariantList"/>
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Release</value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration" type="int">0</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">C:/Users/Andrey/Desktop/aliendefender-build-desktop</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">9</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="int">2</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">true</value>
</valuemap>
<value key="ProjectExplorer.Target.BuildConfigurationCount" type="int">2</value>
<valuemap key="ProjectExplorer.Target.RunConfiguration.0" type="QVariantMap">
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">aliendefender</value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4RunConfiguration</value>
<value key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase" type="int">2</value>
<valuelist key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments" type="QVariantList"/>
<value key="Qt4ProjectManager.Qt4RunConfiguration.ProFile" type="QString">aliendefender.pro</value>
<value key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix" type="bool">false</value>
<value key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal" type="bool">false</value>
<valuelist key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges" type="QVariantList"/>
<value key="Qt4ProjectManager.Qt4RunConfiguration.UserSetName" type="bool">false</value>
<value key="Qt4ProjectManager.Qt4RunConfiguration.UserSetWorkingDirectory" type="bool">true</value>
<value key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory" type="QString">C:\Users\Andrey\Desktop\aliendefender</value>
</valuemap>
<value key="ProjectExplorer.Target.RunConfigurationCount" type="int">1</value>
</valuemap> </valuemap>
</data> </data>
<data> <data>
<variable>buildconfiguration-Debug-buildstep0</variable> <variable>ProjectExplorer.Project.TargetCount</variable>
<valuemap type="QVariantMap"> <value type="int">1</value>
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
<valuelist key="abstractProcess.Environment" type="QVariantList">
<value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-wExeabp7q4,guid=18815993df3603fdc64a3f6d4c7b5822</value>
<value type="QString">DEFAULTS_PATH=/usr/share/gconf/gnome.default.path</value>
<value type="QString">DESKTOP_SESSION=gnome</value>
<value type="QString">DISPLAY=:0.0</value>
<value type="QString">GDMSESSION=gnome</value>
<value type="QString">GDM_KEYBOARD_LAYOUT=us</value>
<value type="QString">GDM_LANG=ru_RU.UTF-8</value>
<value type="QString">GNOME_DESKTOP_SESSION_ID=this-is-deprecated</value>
<value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-4vN5uf</value>
<value type="QString">GTK_MODULES=canberra-gtk-module</value>
<value type="QString">HOME=/home/andrey</value>
<value type="QString">LANG=ru_RU.UTF-8</value>
<value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator:</value>
<value type="QString">LOGNAME=andrey</value>
<value type="QString">MANDATORY_PATH=/usr/share/gconf/gnome.mandatory.path</value>
<value type="QString">ORBIT_SOCKETDIR=/tmp/orbit-andrey</value>
<value type="QString">PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games</value>
<value type="QString">PWD=/home/andrey</value>
<value type="QString">QTDIR=/usr/share/qt4</value>
<value type="QString">SESSION_MANAGER=local/buull-eeePC:@/tmp/.ICE-unix/1205,unix/buull-eeePC:/tmp/.ICE-unix/1205</value>
<value type="QString">SHELL=/bin/bash</value>
<value type="QString">SPEECHD_PORT=6561</value>
<value type="QString">SSH_AGENT_PID=1239</value>
<value type="QString">SSH_AUTH_SOCK=/tmp/keyring-4vN5uf/ssh</value>
<value type="QString">USER=andrey</value>
<value type="QString">USERNAME=andrey</value>
<value type="QString">XAUTHORITY=/var/run/gdm/auth-for-andrey-x9URui/database</value>
<value type="QString">XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg</value>
<value type="QString">XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/</value>
<value type="QString">XDG_SESSION_COOKIE=f0649decca52f2beb55c9ea74ad1d028-1283151906.338331-318132279</value>
</valuelist>
<valuelist key="abstractProcess.arguments" type="QVariantList">
<value type="QString">/home/andrey/AD/aliendefender/aliendefender.pro</value>
<value type="QString">-spec</value>
<value type="QString">linux-g++</value>
<value type="QString">-r</value>
<value type="QString">CONFIG+=debug</value>
</valuelist>
<value key="abstractProcess.command" type="QString">/usr/bin/qmake-qt4</value>
<value key="abstractProcess.enabled" type="bool">false</value>
<value key="abstractProcess.workingDirectory" type="QString">/home/andrey/AD/aliendefender</value>
</valuemap>
</data> </data>
<data> <data>
<variable>buildconfiguration-Debug-buildstep1</variable> <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<valuemap type="QVariantMap"> <value type="int">4</value>
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
<valuelist key="abstractProcess.Environment" type="QVariantList">
<value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-wExeabp7q4,guid=18815993df3603fdc64a3f6d4c7b5822</value>
<value type="QString">DEFAULTS_PATH=/usr/share/gconf/gnome.default.path</value>
<value type="QString">DESKTOP_SESSION=gnome</value>
<value type="QString">DISPLAY=:0.0</value>
<value type="QString">GDMSESSION=gnome</value>
<value type="QString">GDM_KEYBOARD_LAYOUT=us</value>
<value type="QString">GDM_LANG=ru_RU.UTF-8</value>
<value type="QString">GNOME_DESKTOP_SESSION_ID=this-is-deprecated</value>
<value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-4vN5uf</value>
<value type="QString">GTK_MODULES=canberra-gtk-module</value>
<value type="QString">HOME=/home/andrey</value>
<value type="QString">LANG=ru_RU.UTF-8</value>
<value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator:</value>
<value type="QString">LOGNAME=andrey</value>
<value type="QString">MANDATORY_PATH=/usr/share/gconf/gnome.mandatory.path</value>
<value type="QString">ORBIT_SOCKETDIR=/tmp/orbit-andrey</value>
<value type="QString">PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games</value>
<value type="QString">PWD=/home/andrey</value>
<value type="QString">QTDIR=/usr/share/qt4</value>
<value type="QString">SESSION_MANAGER=local/buull-eeePC:@/tmp/.ICE-unix/1205,unix/buull-eeePC:/tmp/.ICE-unix/1205</value>
<value type="QString">SHELL=/bin/bash</value>
<value type="QString">SPEECHD_PORT=6561</value>
<value type="QString">SSH_AGENT_PID=1239</value>
<value type="QString">SSH_AUTH_SOCK=/tmp/keyring-4vN5uf/ssh</value>
<value type="QString">USER=andrey</value>
<value type="QString">USERNAME=andrey</value>
<value type="QString">XAUTHORITY=/var/run/gdm/auth-for-andrey-x9URui/database</value>
<value type="QString">XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg</value>
<value type="QString">XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/</value>
<value type="QString">XDG_SESSION_COOKIE=f0649decca52f2beb55c9ea74ad1d028-1283151906.338331-318132279</value>
</valuelist>
<value key="abstractProcess.IgnoreReturnValue" type="bool">false</value>
<valuelist key="abstractProcess.arguments" type="QVariantList">
<value type="QString">-w</value>
</valuelist>
<value key="abstractProcess.command" type="QString">/usr/bin/make</value>
<value key="abstractProcess.enabled" type="bool">true</value>
<value key="abstractProcess.workingDirectory" type="QString">/home/andrey/AD/aliendefender</value>
</valuemap>
</data>
<data>
<variable>buildconfiguration-Debug-cleanstep0</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
<valuelist key="abstractProcess.Environment" type="QVariantList">
<value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-wExeabp7q4,guid=18815993df3603fdc64a3f6d4c7b5822</value>
<value type="QString">DEFAULTS_PATH=/usr/share/gconf/gnome.default.path</value>
<value type="QString">DESKTOP_SESSION=gnome</value>
<value type="QString">DISPLAY=:0.0</value>
<value type="QString">GDMSESSION=gnome</value>
<value type="QString">GDM_KEYBOARD_LAYOUT=us</value>
<value type="QString">GDM_LANG=ru_RU.UTF-8</value>
<value type="QString">GNOME_DESKTOP_SESSION_ID=this-is-deprecated</value>
<value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-4vN5uf</value>
<value type="QString">GTK_MODULES=canberra-gtk-module</value>
<value type="QString">HOME=/home/andrey</value>
<value type="QString">LANG=ru_RU.UTF-8</value>
<value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator:</value>
<value type="QString">LOGNAME=andrey</value>
<value type="QString">MANDATORY_PATH=/usr/share/gconf/gnome.mandatory.path</value>
<value type="QString">ORBIT_SOCKETDIR=/tmp/orbit-andrey</value>
<value type="QString">PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games</value>
<value type="QString">PWD=/home/andrey</value>
<value type="QString">QTDIR=/usr/share/qt4</value>
<value type="QString">SESSION_MANAGER=local/buull-eeePC:@/tmp/.ICE-unix/1205,unix/buull-eeePC:/tmp/.ICE-unix/1205</value>
<value type="QString">SHELL=/bin/bash</value>
<value type="QString">SPEECHD_PORT=6561</value>
<value type="QString">SSH_AGENT_PID=1239</value>
<value type="QString">SSH_AUTH_SOCK=/tmp/keyring-4vN5uf/ssh</value>
<value type="QString">USER=andrey</value>
<value type="QString">USERNAME=andrey</value>
<value type="QString">XAUTHORITY=/var/run/gdm/auth-for-andrey-x9URui/database</value>
<value type="QString">XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg</value>
<value type="QString">XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/</value>
<value type="QString">XDG_SESSION_COOKIE=f0649decca52f2beb55c9ea74ad1d028-1283151906.338331-318132279</value>
</valuelist>
<value key="abstractProcess.IgnoreReturnValue" type="bool">true</value>
<valuelist key="abstractProcess.arguments" type="QVariantList">
<value type="QString">clean</value>
<value type="QString">-w</value>
</valuelist>
<value key="abstractProcess.command" type="QString">/usr/bin/make</value>
<value key="abstractProcess.enabled" type="bool">true</value>
<value key="abstractProcess.workingDirectory" type="QString">/home/andrey/AD/aliendefender</value>
<value key="cleanConfig" type="bool">true</value>
<valuelist key="makeargs" type="QVariantList">
<value type="QString">clean</value>
</valuelist>
</valuemap>
</data>
<data>
<variable>buildconfiguration-Release-buildstep0</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
</valuemap>
</data>
<data>
<variable>buildconfiguration-Release-buildstep1</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
</valuemap>
</data>
<data>
<variable>buildconfiguration-Release-cleanstep0</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
</valuemap>
</data>
<data>
<variable>buildconfigurations</variable>
<valuelist type="QVariantList">
<value type="QString">Debug</value>
<value type="QString">Release</value>
</valuelist>
</data>
<data>
<variable>buildstep0</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
<value key="mkspec" type="QString"></value>
</valuemap>
</data>
<data>
<variable>buildstep1</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
</valuemap>
</data>
<data>
<variable>buildsteps</variable>
<valuelist type="QVariantList">
<value type="QString">trolltech.qt4projectmanager.qmake</value>
<value type="QString">trolltech.qt4projectmanager.make</value>
</valuelist>
</data>
<data>
<variable>cleanstep0</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
<value key="clean" type="bool">true</value>
</valuemap>
</data>
<data>
<variable>cleansteps</variable>
<valuelist type="QVariantList">
<value type="QString">trolltech.qt4projectmanager.make</value>
</valuelist>
</data>
<data>
<variable>defaultFileEncoding</variable>
<value type="QByteArray">System</value>
</data>
<data>
<variable>project</variable>
<valuemap type="QVariantMap"/>
</data> </data>
</qtcreator> </qtcreator>

View File

@@ -56,17 +56,27 @@
<variable>buildConfiguration-Debug</variable> <variable>buildConfiguration-Debug</variable>
<valuemap type="QVariantMap"> <valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value> <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
<value key="QtVersionId" type="int">2</value> <value key="QtVersionId" type="int">0</value>
<value key="ToolChain" type="int">0</value> <value key="ToolChain" type="int">0</value>
<value key="addQDumper" type=""></value>
<value key="buildConfiguration" type="int">2</value> <value key="buildConfiguration" type="int">2</value>
</valuemap> </valuemap>
</data> </data>
<data>
<variable>buildConfiguration-Release</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
<value key="QtVersionId" type="int">0</value>
<value key="addQDumper" type=""></value>
<value key="buildConfiguration" type="int">0</value>
</valuemap>
</data>
<data> <data>
<variable>buildconfiguration-Debug-buildstep0</variable> <variable>buildconfiguration-Debug-buildstep0</variable>
<valuemap type="QVariantMap"> <valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value> <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
<valuelist key="abstractProcess.Environment" type="QVariantList"> <valuelist key="abstractProcess.Environment" type="QVariantList">
<value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-7vJZaf9AwI,guid=f26a2301f932cefdec6dd3bc4c79669f</value> <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-wExeabp7q4,guid=18815993df3603fdc64a3f6d4c7b5822</value>
<value type="QString">DEFAULTS_PATH=/usr/share/gconf/gnome.default.path</value> <value type="QString">DEFAULTS_PATH=/usr/share/gconf/gnome.default.path</value>
<value type="QString">DESKTOP_SESSION=gnome</value> <value type="QString">DESKTOP_SESSION=gnome</value>
<value type="QString">DISPLAY=:0.0</value> <value type="QString">DISPLAY=:0.0</value>
@@ -74,7 +84,7 @@
<value type="QString">GDM_KEYBOARD_LAYOUT=us</value> <value type="QString">GDM_KEYBOARD_LAYOUT=us</value>
<value type="QString">GDM_LANG=ru_RU.UTF-8</value> <value type="QString">GDM_LANG=ru_RU.UTF-8</value>
<value type="QString">GNOME_DESKTOP_SESSION_ID=this-is-deprecated</value> <value type="QString">GNOME_DESKTOP_SESSION_ID=this-is-deprecated</value>
<value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-U899U4</value> <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-4vN5uf</value>
<value type="QString">GTK_MODULES=canberra-gtk-module</value> <value type="QString">GTK_MODULES=canberra-gtk-module</value>
<value type="QString">HOME=/home/andrey</value> <value type="QString">HOME=/home/andrey</value>
<value type="QString">LANG=ru_RU.UTF-8</value> <value type="QString">LANG=ru_RU.UTF-8</value>
@@ -85,17 +95,17 @@
<value type="QString">PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games</value> <value type="QString">PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games</value>
<value type="QString">PWD=/home/andrey</value> <value type="QString">PWD=/home/andrey</value>
<value type="QString">QTDIR=/usr/share/qt4</value> <value type="QString">QTDIR=/usr/share/qt4</value>
<value type="QString">SESSION_MANAGER=local/buull-eeePC:@/tmp/.ICE-unix/1236,unix/buull-eeePC:/tmp/.ICE-unix/1236</value> <value type="QString">SESSION_MANAGER=local/buull-eeePC:@/tmp/.ICE-unix/1205,unix/buull-eeePC:/tmp/.ICE-unix/1205</value>
<value type="QString">SHELL=/bin/bash</value> <value type="QString">SHELL=/bin/bash</value>
<value type="QString">SPEECHD_PORT=6561</value> <value type="QString">SPEECHD_PORT=6561</value>
<value type="QString">SSH_AGENT_PID=1270</value> <value type="QString">SSH_AGENT_PID=1239</value>
<value type="QString">SSH_AUTH_SOCK=/tmp/keyring-U899U4/ssh</value> <value type="QString">SSH_AUTH_SOCK=/tmp/keyring-4vN5uf/ssh</value>
<value type="QString">USER=andrey</value> <value type="QString">USER=andrey</value>
<value type="QString">USERNAME=andrey</value> <value type="QString">USERNAME=andrey</value>
<value type="QString">XAUTHORITY=/var/run/gdm/auth-for-andrey-6T6AjI/database</value> <value type="QString">XAUTHORITY=/var/run/gdm/auth-for-andrey-x9URui/database</value>
<value type="QString">XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg</value> <value type="QString">XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg</value>
<value type="QString">XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/</value> <value type="QString">XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/</value>
<value type="QString">XDG_SESSION_COOKIE=f0649decca52f2beb55c9ea74ad1d028-1283024543.354844-1194058895</value> <value type="QString">XDG_SESSION_COOKIE=f0649decca52f2beb55c9ea74ad1d028-1283151906.338331-318132279</value>
</valuelist> </valuelist>
<valuelist key="abstractProcess.arguments" type="QVariantList"> <valuelist key="abstractProcess.arguments" type="QVariantList">
<value type="QString">/home/andrey/AD/aliendefender/aliendefender.pro</value> <value type="QString">/home/andrey/AD/aliendefender/aliendefender.pro</value>
@@ -114,7 +124,7 @@
<valuemap type="QVariantMap"> <valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value> <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
<valuelist key="abstractProcess.Environment" type="QVariantList"> <valuelist key="abstractProcess.Environment" type="QVariantList">
<value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-7vJZaf9AwI,guid=f26a2301f932cefdec6dd3bc4c79669f</value> <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-wExeabp7q4,guid=18815993df3603fdc64a3f6d4c7b5822</value>
<value type="QString">DEFAULTS_PATH=/usr/share/gconf/gnome.default.path</value> <value type="QString">DEFAULTS_PATH=/usr/share/gconf/gnome.default.path</value>
<value type="QString">DESKTOP_SESSION=gnome</value> <value type="QString">DESKTOP_SESSION=gnome</value>
<value type="QString">DISPLAY=:0.0</value> <value type="QString">DISPLAY=:0.0</value>
@@ -122,7 +132,7 @@
<value type="QString">GDM_KEYBOARD_LAYOUT=us</value> <value type="QString">GDM_KEYBOARD_LAYOUT=us</value>
<value type="QString">GDM_LANG=ru_RU.UTF-8</value> <value type="QString">GDM_LANG=ru_RU.UTF-8</value>
<value type="QString">GNOME_DESKTOP_SESSION_ID=this-is-deprecated</value> <value type="QString">GNOME_DESKTOP_SESSION_ID=this-is-deprecated</value>
<value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-U899U4</value> <value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-4vN5uf</value>
<value type="QString">GTK_MODULES=canberra-gtk-module</value> <value type="QString">GTK_MODULES=canberra-gtk-module</value>
<value type="QString">HOME=/home/andrey</value> <value type="QString">HOME=/home/andrey</value>
<value type="QString">LANG=ru_RU.UTF-8</value> <value type="QString">LANG=ru_RU.UTF-8</value>
@@ -133,17 +143,17 @@
<value type="QString">PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games</value> <value type="QString">PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games</value>
<value type="QString">PWD=/home/andrey</value> <value type="QString">PWD=/home/andrey</value>
<value type="QString">QTDIR=/usr/share/qt4</value> <value type="QString">QTDIR=/usr/share/qt4</value>
<value type="QString">SESSION_MANAGER=local/buull-eeePC:@/tmp/.ICE-unix/1236,unix/buull-eeePC:/tmp/.ICE-unix/1236</value> <value type="QString">SESSION_MANAGER=local/buull-eeePC:@/tmp/.ICE-unix/1205,unix/buull-eeePC:/tmp/.ICE-unix/1205</value>
<value type="QString">SHELL=/bin/bash</value> <value type="QString">SHELL=/bin/bash</value>
<value type="QString">SPEECHD_PORT=6561</value> <value type="QString">SPEECHD_PORT=6561</value>
<value type="QString">SSH_AGENT_PID=1270</value> <value type="QString">SSH_AGENT_PID=1239</value>
<value type="QString">SSH_AUTH_SOCK=/tmp/keyring-U899U4/ssh</value> <value type="QString">SSH_AUTH_SOCK=/tmp/keyring-4vN5uf/ssh</value>
<value type="QString">USER=andrey</value> <value type="QString">USER=andrey</value>
<value type="QString">USERNAME=andrey</value> <value type="QString">USERNAME=andrey</value>
<value type="QString">XAUTHORITY=/var/run/gdm/auth-for-andrey-6T6AjI/database</value> <value type="QString">XAUTHORITY=/var/run/gdm/auth-for-andrey-x9URui/database</value>
<value type="QString">XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg</value> <value type="QString">XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg</value>
<value type="QString">XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/</value> <value type="QString">XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/</value>
<value type="QString">XDG_SESSION_COOKIE=f0649decca52f2beb55c9ea74ad1d028-1283024543.354844-1194058895</value> <value type="QString">XDG_SESSION_COOKIE=f0649decca52f2beb55c9ea74ad1d028-1283151906.338331-318132279</value>
</valuelist> </valuelist>
<value key="abstractProcess.IgnoreReturnValue" type="bool">false</value> <value key="abstractProcess.IgnoreReturnValue" type="bool">false</value>
<valuelist key="abstractProcess.arguments" type="QVariantList"> <valuelist key="abstractProcess.arguments" type="QVariantList">
@@ -158,16 +168,75 @@
<variable>buildconfiguration-Debug-cleanstep0</variable> <variable>buildconfiguration-Debug-cleanstep0</variable>
<valuemap type="QVariantMap"> <valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value> <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
<valuelist key="abstractProcess.Environment" type="QVariantList">
<value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-wExeabp7q4,guid=18815993df3603fdc64a3f6d4c7b5822</value>
<value type="QString">DEFAULTS_PATH=/usr/share/gconf/gnome.default.path</value>
<value type="QString">DESKTOP_SESSION=gnome</value>
<value type="QString">DISPLAY=:0.0</value>
<value type="QString">GDMSESSION=gnome</value>
<value type="QString">GDM_KEYBOARD_LAYOUT=us</value>
<value type="QString">GDM_LANG=ru_RU.UTF-8</value>
<value type="QString">GNOME_DESKTOP_SESSION_ID=this-is-deprecated</value>
<value type="QString">GNOME_KEYRING_CONTROL=/tmp/keyring-4vN5uf</value>
<value type="QString">GTK_MODULES=canberra-gtk-module</value>
<value type="QString">HOME=/home/andrey</value>
<value type="QString">LANG=ru_RU.UTF-8</value>
<value type="QString">LD_LIBRARY_PATH=/usr/lib/qtcreator:</value>
<value type="QString">LOGNAME=andrey</value>
<value type="QString">MANDATORY_PATH=/usr/share/gconf/gnome.mandatory.path</value>
<value type="QString">ORBIT_SOCKETDIR=/tmp/orbit-andrey</value>
<value type="QString">PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games</value>
<value type="QString">PWD=/home/andrey</value>
<value type="QString">QTDIR=/usr/share/qt4</value>
<value type="QString">SESSION_MANAGER=local/buull-eeePC:@/tmp/.ICE-unix/1205,unix/buull-eeePC:/tmp/.ICE-unix/1205</value>
<value type="QString">SHELL=/bin/bash</value>
<value type="QString">SPEECHD_PORT=6561</value>
<value type="QString">SSH_AGENT_PID=1239</value>
<value type="QString">SSH_AUTH_SOCK=/tmp/keyring-4vN5uf/ssh</value>
<value type="QString">USER=andrey</value>
<value type="QString">USERNAME=andrey</value>
<value type="QString">XAUTHORITY=/var/run/gdm/auth-for-andrey-x9URui/database</value>
<value type="QString">XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg</value>
<value type="QString">XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/</value>
<value type="QString">XDG_SESSION_COOKIE=f0649decca52f2beb55c9ea74ad1d028-1283151906.338331-318132279</value>
</valuelist>
<value key="abstractProcess.IgnoreReturnValue" type="bool">true</value>
<valuelist key="abstractProcess.arguments" type="QVariantList">
<value type="QString">clean</value>
<value type="QString">-w</value>
</valuelist>
<value key="abstractProcess.command" type="QString">/usr/bin/make</value>
<value key="abstractProcess.enabled" type="bool">true</value>
<value key="abstractProcess.workingDirectory" type="QString">/home/andrey/AD/aliendefender</value>
<value key="cleanConfig" type="bool">true</value> <value key="cleanConfig" type="bool">true</value>
<valuelist key="makeargs" type="QVariantList"> <valuelist key="makeargs" type="QVariantList">
<value type="QString">clean</value> <value type="QString">clean</value>
</valuelist> </valuelist>
</valuemap> </valuemap>
</data> </data>
<data>
<variable>buildconfiguration-Release-buildstep0</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
</valuemap>
</data>
<data>
<variable>buildconfiguration-Release-buildstep1</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
</valuemap>
</data>
<data>
<variable>buildconfiguration-Release-cleanstep0</variable>
<valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
</valuemap>
</data>
<data> <data>
<variable>buildconfigurations</variable> <variable>buildconfigurations</variable>
<valuelist type="QVariantList"> <valuelist type="QVariantList">
<value type="QString">Debug</value> <value type="QString">Debug</value>
<value type="QString">Release</value>
</valuelist> </valuelist>
</data> </data>
<data> <data>

View File

@@ -70,7 +70,6 @@ void Aliens::update()
(*i).pathIndex++; (*i).pathIndex++;
if ((*i).pathIndex >= (*i).path.size()) if ((*i).pathIndex >= (*i).path.size())
{ {
qDebug() << tr("Missing aliens = %1!").arg(gameData->missingAliens);
missIndex.push_back((*i).id); missIndex.push_back((*i).id);
curMiss = (*i).id; curMiss = (*i).id;
break; break;
@@ -113,6 +112,7 @@ void Aliens::update()
for (int j=0; j<missIndex.size(); j++) for (int j=0; j<missIndex.size(); j++)
{ {
gameData->missingAliens++; gameData->missingAliens++;
qDebug() << tr("Missing aliens = %1!").arg(gameData->missingAliens);
delAlien(missIndex.at(j)); delAlien(missIndex.at(j));
} }
} }

View File

@@ -151,6 +151,7 @@ struct TowerType
float angle; // -180 .. 180 float angle; // -180 .. 180
unsigned int reload; // time for reload in ticks unsigned int reload; // time for reload in ticks
unsigned int build; unsigned int build;
float experience;
}; };

View File

@@ -1,11 +1,11 @@
<!DOCTYPE data> <!DOCTYPE data>
<ADdata> <ADdata>
<aliens> <aliens>
<alien flying="true" speed="0.3" imageType="31" prise="15" id="2" score="12" name="Monstr" health="20"/> <alien speed="0.08" imageType="31" prise="15" id="2" score="12" name="Monstr" health="33"/>
<alien flying="true" speed="0.2" imageType="-1078580008" prise="1" id="4" score="10" name="test" health="50"/> <alien speed="0.05" imageType="-1078580008" prise="1" id="4" score="10" name="test" health="100"/>
<alien speed="0.1" imageType="1" prise="4" id="10" score="99" name="first" health="33"/> <alien speed="0.03" imageType="1" prise="4" id="10" score="99" name="first" health="50"/>
<alien regeneration="3" speed="0.15" imageType="1" prise="10" armor="1.5" id="12" score="99" name="MONSTR" health="100"/> <alien regeneration="3" speed="0.01" imageType="1" prise="10" armor="1.5" id="12" score="99" name="MONSTR" health="200"/>
</aliens> <alien speed="0.05" imageType="1" prise="10" id="33" score="99" name="MONSTR" health="888"/> </aliens>
<maps> <maps>
<map width="16" imageType="1" height="16" id="1" data="AAAERHicY2BgEGAA4v///0hQgmFmAGlGcjCxZuCTHzUDuxkMDOr85JrBwKC0A8kMJlwYagYOeYgZ+NXgNwMtPEbNINIMIsynOO8DAG0r1Q0=" name="My Map" maxPlayers="2"/> <map width="16" imageType="1" height="16" id="1" data="AAAERHicY2BgEGAA4v///0hQgmFmAGlGcjCxZuCTHzUDuxkMDOr85JrBwKC0A8kMJlwYagYOeYgZ+NXgNwMtPEbNINIMIsynOO8DAG0r1Q0=" name="My Map" maxPlayers="2"/>
<map width="30" imageType="2" height="20" id="2" data="AAAJ3HicY2BgkGNgYBD5//+PBDGYgUGdnzh1EDOBNCM1MKlmEqNu1MxRM0fNHNxmgsobapnJwKC0Yyj5fdTMUTNHzRzaZpJgLwltMKUdxKgDADpycNA=" name="map2" maxPlayers="1"/> <map width="30" imageType="2" height="20" id="2" data="AAAJ3HicY2BgkGNgYBD5//+PBDGYgUGdnzh1EDOBNCM1MKlmEqNu1MxRM0fNHNxmgsobapnJwKC0Yyj5fdTMUTNHzRzaZpJgLwltMKUdxKgDADpycNA=" name="map2" maxPlayers="1"/>
@@ -17,8 +17,8 @@
<wave prise="220" timeout="5" id="4"/> <wave prise="220" timeout="5" id="4"/>
<wave prise="220" timeout="2" id="5"/> <wave prise="220" timeout="2" id="5"/>
<wave prise="220" timeout="20" id="6"/> <wave prise="220" timeout="20" id="6"/>
<wave prise="220" timeout="1" id="7"/> <wave prise="220" timeout="25" id="7"/>
<wave prise="220" timeout="1" id="8"/> <wave prise="220" timeout="5" id="8"/>
<wave prise="220" timeout="1" id="9"/> <wave prise="220" timeout="1" id="9"/>
<wave prise="220" timeout="1" id="10"/> <wave prise="220" timeout="1" id="10"/>
<wave prise="220" timeout="5" id="11"/> <wave prise="220" timeout="5" id="11"/>
@@ -50,6 +50,8 @@
<wavePart alien="10" count="1" wave="6"/> <wavePart alien="10" count="1" wave="6"/>
<wavePart alien="4" count="1" wave="6"/> <wavePart alien="4" count="1" wave="6"/>
<wavePart alien="10" count="1" wave="6"/> <wavePart alien="10" count="1" wave="6"/>
<wavePart alien="33" count="2" wave="7"/>
<wavePart alien="33" count="50" wave="8"/>
</waveParts> </waveParts>
<wavesOnLevels> <wavesOnLevels>
<waveOnLevel wave="1" level="1"/> <waveOnLevel wave="1" level="1"/>
@@ -58,18 +60,20 @@
<waveOnLevel wave="4" level="1"/> <waveOnLevel wave="4" level="1"/>
<waveOnLevel wave="5" level="1"/> <waveOnLevel wave="5" level="1"/>
<waveOnLevel wave="6" level="1"/> <waveOnLevel wave="6" level="1"/>
<waveOnLevel wave="7" level="1"/>
<waveOnLevel wave="8" level="1"/>
</wavesOnLevels> </wavesOnLevels>
<splashes> <splashes>
<splash speed="0.5" imageType="1" lifetime="9999" id="1" name="rocket"/> <splash speed="0.2" imageType="0" lifetime="9999" id="1" name="rocket"/>
<splash speed="0.5" imageType="1" lifetime="9999" autoControl="true" id="2" name="smart rocket"/> <splash speed="0.2" imageType="0" lifetime="9999" autoControl="true" id="2" name="smart rocket"/>
<splash speed="1" imageType="2" lifetime="9999" autoControl="true" id="3" name="bullet"/> <splash speed="1" imageType="1" lifetime="9999" autoControl="true" id="3" name="bullet"/>
<splash speed="1" imageType="3" lifetime="10" id="4" name="bum"/> <splash speed="0" imageType="3" lifetime="5" id="4" name="bum"/>
<splash speed="0" imageType="4" lifetime="10" id="5" name="smoke"/> <splash speed="0" imageType="2" lifetime="3" id="5" name="smoke"/>
</splashes> </splashes>
<towers> <towers>
<tower imageType="1" radius="2" expByKill="0.1" expByShot="0.15" buildTime="25" splash="1" reload="30" id="1" name="rocket launcher" cost="30" expByDamage="0.04"/> <tower imageType="0" radius="8" expByKill="0.1" expByShot="0.15" buildTime="150" splash="2" reload="20" id="1" name="rocket launcher 2" cost="50" expByDamage="0.04"/>
<tower imageType="2" radius="5" expByKill="0.2" expByShot="0.1" buildTime="50" splash="3" reload="5" id="2" name="gun" cost="10" expByDamage="0.1"/> <tower imageType="1" radius="5" expByKill="0.2" expByShot="0.1" buildTime="100" splash="3" reload="20" id="2" name="gun" cost="10" expByDamage="0.1"/>
<tower imageType="1" radius="10" expByKill="0.1" expByShot="0.15" buildTime="100" splash="2" reload="10" id="3" name="rocket launcher 2" cost="30" expByDamage="0.04"/> <tower imageType="0" radius="4" expByKill="0.1" expByShot="0.15" buildTime="200" splash="1" reload="50" id="3" name="rocket launcher" cost="30" expByDamage="0.04"/>
</towers> </towers>
<triggers> <triggers>
<trigger damage="5" childAim="noAim" delParent="true" type="onDestination" id="2" name="shot"/> <trigger damage="5" childAim="noAim" delParent="true" type="onDestination" id="2" name="shot"/>
@@ -77,11 +81,11 @@
<trigger childAim="noAim" count="1" type="onTimer" id="4" name="smoke"/> <trigger childAim="noAim" count="1" type="onTimer" id="4" name="smoke"/>
</triggers> </triggers>
<chains> <chains>
<chain tower="1" trigger="3" child="4" parent="1"/> <chain tower="1" trigger="3" child="4" parent="2"/>
<chain tower="1" trigger="4" child="5" parent="1"/> <chain tower="1" trigger="4" child="5" parent="2"/>
<chain tower="2" trigger="2" parent="3"/> <chain tower="2" trigger="2" parent="3"/>
<chain tower="3" trigger="3" child="4" parent="2"/> <chain tower="3" trigger="3" child="4" parent="1"/>
<chain tower="3" trigger="4" child="5" parent="2"/> <chain tower="3" trigger="4" child="5" parent="1"/>
</chains> </chains>
<towersOnLevels> <towersOnLevels>
<towerOnLevel tower="1" level="1"/> <towerOnLevel tower="1" level="1"/>

View File

@@ -23,5 +23,8 @@
<file>images/Towers/00_0.png</file> <file>images/Towers/00_0.png</file>
<file>images/Splashes/Rocket.png</file> <file>images/Splashes/Rocket.png</file>
<file>images/Towers/01_6.png</file> <file>images/Towers/01_6.png</file>
<file>images/Splashes/Shot_0.png</file>
<file>images/Splashes/Smoke_01.png</file>
<file>images/Splashes/expl.png</file>
</qresource> </qresource>
</RCC> </RCC>

BIN
images/Splashes/expl.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -369,6 +369,8 @@ void Loader::fillTowerChains(QList <tbChain> * chlist, QList <int> * trigIds, sr
strigt.damage = tbtrig.damage; strigt.damage = tbtrig.damage;
strigt.delParent = tbtrig.delParent; strigt.delParent = tbtrig.delParent;
strigt.radius = tbtrig.radius; strigt.radius = tbtrig.radius;
if (strigt.radius <= 0 && strigt.damage>0 && !splashes.value(parId).autoControl)
qCritical("Wrong trigger or chain, because damage >0 radius=0 and not autocontrol.\nThis damage will be ignored!");
strigt.randomPosRadius = tbtrig.randomPosRadius; strigt.randomPosRadius = tbtrig.randomPosRadius;
strigt.timer = tbtrig.timer; strigt.timer = tbtrig.timer;
strigt.type = tbtrig.type; strigt.type = tbtrig.type;

View File

@@ -132,7 +132,7 @@ bool Map::addTowerOnMap(int playerId, QPoint pos)
bool * pathOK; bool * pathOK;
pathOK = new bool(); pathOK = new bool();
*pathOK = true; *pathOK = true;
qDebug("emit"); //qDebug("emit");
emit recreateAlienPath(pathOK); emit recreateAlienPath(pathOK);
qDebug() << *pathOK; qDebug() << *pathOK;
if (!pathOK) if (!pathOK)
@@ -146,7 +146,7 @@ bool Map::addTowerOnMap(int playerId, QPoint pos)
} }
return true; return true;
} }
qDebug()<<"Dont buid here" << Cells[pos.x()][pos.y()]; qDebug()<<"Dont buid here" << pos;
return false; return false;
} }

View File

@@ -9,43 +9,59 @@ Splashes::Splashes(Game_Data *gd, QObject *parent) :
} }
bool Splashes::addSplash(int srcId, QPointF pos) void Splashes::addSplash(int player, int srcTower, int srcId, QPointF pos, QPointF dest, int aim, QPoint curTower)
{ {
qDebug("don't use this function addSplash(int srcId, QPointF pos)"); srcSplashType src = gameData->players.at(player)->srcTowers.at(srcTower).splashes.at(srcId);
return false; SplashType spl;
// FIXME: говнокод
// TODO: find and correct errors here
/* if (srcId < 0 || srcId >= gameData->srcSplashes.size())
{
qCritical("ERROR out of splashes range");
return false;
}
srcSplashType src = gameData->srcSplashes.at(srcId);
SplashType spl;// = gameData->srcAliens.at(srcId);
spl.id = nextId; spl.id = nextId;
spl.src = srcId; spl.TowerId = curTower;
spl.TowerId = QPoint(-1,-1); spl.srcTower = srcTower;
spl.life = 0; spl.PlayerId = player;
spl.imgType = src.imgType; if (src.autoControl)
if (!gameData->map->rect().contains(pos.toPoint()))
{ {
qCritical("ERROR splash out of map size"); spl.AlienId = aim;
return false; if (gameData->curAliens.contains(aim))
spl.destination = gameData->curAliens.value(aim).pos+QPointF(0.5,0.5);
else
spl.destination = dest;
} else {
spl.AlienId = -1;
spl.destination = dest;
} }
spl.pos = pos; spl.pos = pos;
spl.AlienId = -1; spl.angle = 180.0f*(- std::atan2(spl.pos.x() - spl.destination.x(),spl.pos.y() - spl.destination.y()))/M_PI;
spl.angle = 0; spl.imgType = src.imgType;
spl.destination = pos; spl.life = 0;
TriggerType trig; spl.src = srcId;
//TriggerType trig;
srcTriggerType trig;
for(int i=0; i<src.triggerIndexes.size(); i++) for(int i=0; i<src.triggerIndexes.size(); i++)
{ {
trig.timer = gameData->srTriggers.at(src.triggerIndexes.at(i)).timer; TriggerOnDest tod;
trig.src = src.triggerIndexes.at(i); TriggerOnAlien toa;
spl.triggers.push_back(trig); TriggerOnTimer tot;
trig = gameData->players.at(player)->srcTowers.at(srcTower).triggers.at(src.triggerIndexes.at(i));
switch (trig.type)
{
case srcTriggerType::onDestination :
tod.src = src.triggerIndexes.at(i);
spl.trigsOnDest.append(tod);
break;
case srcTriggerType::onAlienInRadius :
toa.src = src.triggerIndexes.at(i);
spl.trigsOnAlien.append(toa);
break;
case srcTriggerType::onTimer :
tot.src = src.triggerIndexes.at(i);
tot.timer = trig.timer;
spl.trigsOnTimer.append(tot);
break;
}
} }
//qDebug() << "t=" << src.triggerIndexes.size() << "d=" << spl.trigsOnDest.size();
gameData->curSplashes.insert(spl.id,spl); gameData->curSplashes.insert(spl.id,spl);
nextId++; nextId++;
return true;*/
} }
@@ -54,54 +70,57 @@ void Splashes::addSplash(QPoint curTowerId)
if (gameData->curTowers.contains(curTowerId)) if (gameData->curTowers.contains(curTowerId))
{ {
TowerType tw = gameData->curTowers.value(curTowerId); TowerType tw = gameData->curTowers.value(curTowerId);
srcSplashType src = gameData->players.at(tw.PlayerId)->srcTowers.at(tw.src).splashes.at(0); addSplash(tw.PlayerId,tw.src,0,QPointF(tw.pos+QPoint(1,1)),gameData->curAliens.value(tw.aim).pos+QPointF(0.5,0.5),tw.aim,tw.pos);
SplashType spl;
spl.id = nextId;
spl.TowerId = curTowerId;
spl.srcTower = tw.src;
spl.PlayerId = tw.PlayerId;
if (!gameData->curAliens.contains(tw.aim))
qFatal("Error finding splash aim! Tower has nvalid aim!");
spl.destination = gameData->curAliens.value(tw.aim).pos;
if (src.autoControl)
spl.AlienId = tw.aim;
else
spl.AlienId = -1;
spl.angle = tw.angle;
spl.pos = tw.pos; // FIXME: splash do not create in center or left-angle of tower, it must be in tower's side
spl.imgType = src.imgType;
spl.life = 0;
spl.src = 0;
//TriggerType trig;
for(int i=0; i<src.triggerIndexes.size(); i++)
{
srcTriggerType trig;
TriggerOnDest tod;
TriggerOnAlien toa;
TriggerOnTimer tot;
trig = gameData->players.at(tw.PlayerId)->srcTowers.at(tw.src).triggers.at(src.triggerIndexes.at(i));
switch (trig.type)
{
case srcTriggerType::onDestination :
tod.src = src.triggerIndexes.at(i);
spl.trigsOnDest.append(tod);
break;
case srcTriggerType::onAlienInRadius :
toa.src = src.triggerIndexes.at(i);
spl.trigsOnAlien.append(toa);
break;
case srcTriggerType::onTimer :
tot.src = src.triggerIndexes.at(i);
tot.timer = trig.timer;
spl.trigsOnTimer.append(tot);
break;
}
}
qDebug() << "t=" << src.triggerIndexes.size() << "d=" << spl.trigsOnDest.size();
gameData->curSplashes.insert(spl.id,spl);
nextId++;
} }
// TowerType tw = gameData->curTowers.value(curTowerId);
// srcSplashType src = gameData->players.at(tw.PlayerId)->srcTowers.at(tw.src).splashes.at(0);
// SplashType spl;
// spl.id = nextId;
// spl.TowerId = curTowerId;
// spl.srcTower = tw.src;
// spl.PlayerId = tw.PlayerId;
// if (!gameData->curAliens.contains(tw.aim))
// qFatal("Error finding splash aim! Tower has nvalid aim!");
// spl.destination = gameData->curAliens.value(tw.aim).pos;
// if (src.autoControl)
// spl.AlienId = tw.aim;
// else
// spl.AlienId = -1;
// spl.pos = tw.pos+QPointF(0.5,0.5); // FIXME: splash do not create in center or left-angle of tower, it must be in tower's side
// spl.angle = 180.0f*(- std::atan2(spl.pos.x() - spl.destination.x(),spl.pos.y() - spl.destination.y()))/M_PI;
// spl.imgType = src.imgType;
// spl.life = 0;
// spl.src = 0;
// //TriggerType trig;
// for(int i=0; i<src.triggerIndexes.size(); i++)
// {
// srcTriggerType trig;
// TriggerOnDest tod;
// TriggerOnAlien toa;
// TriggerOnTimer tot;
// trig = gameData->players.at(tw.PlayerId)->srcTowers.at(tw.src).triggers.at(src.triggerIndexes.at(i));
// switch (trig.type)
// {
// case srcTriggerType::onDestination :
// tod.src = src.triggerIndexes.at(i);
// spl.trigsOnDest.append(tod);
// break;
// case srcTriggerType::onAlienInRadius :
// toa.src = src.triggerIndexes.at(i);
// spl.trigsOnAlien.append(toa);
// break;
// case srcTriggerType::onTimer :
// tot.src = src.triggerIndexes.at(i);
// tot.timer = trig.timer;
// spl.trigsOnTimer.append(tot);
// break;
// }
// }
// //qDebug() << "t=" << src.triggerIndexes.size() << "d=" << spl.trigsOnDest.size();
// gameData->curSplashes.insert(spl.id,spl);
// nextId++;
// }
} }
@@ -110,14 +129,12 @@ void Splashes::update()
QList <int> deadIndexes; QList <int> deadIndexes;
for (int i=0; i<gameData->curSplashes.size(); i++) for (int i=0; i<gameData->curSplashes.size(); i++)
{ {
//int curDead = -1;
float arctg,angl; float arctg,angl;
SplashType spl = gameData->curSplashes.values().at(i); SplashType spl = gameData->curSplashes.values().at(i);
//bool isTowerSplash = false; //bool isTowerSplash = false;
srcSplashType src; srcSplashType src;
TowerType tw; // FIXME : if splash is not tower's splash, will be some trouble
tw = gameData->curTowers.value(spl.TowerId); src = gameData->players.at(spl.PlayerId)->srcTowers.at(spl.srcTower).splashes.at(spl.src);
src = gameData->players.at(tw.PlayerId)->srcTowers.at(tw.src).splashes.at(spl.src);
spl.life++; spl.life++;
if (spl.life > src.lifetime) if (spl.life > src.lifetime)
deadIndexes.append(spl.id); deadIndexes.append(spl.id);
@@ -128,7 +145,7 @@ void Splashes::update()
{ {
bool badAl = false; bool badAl = false;
if (gameData->curAliens.contains(spl.AlienId)) if (gameData->curAliens.contains(spl.AlienId))
spl.destination = gameData->curAliens.value(spl.AlienId).pos; spl.destination = gameData->curAliens.value(spl.AlienId).pos+QPointF(0.5,0.5);
else else
badAl = true; badAl = true;
if (distance2(spl.pos, spl.destination) < src.speed*src.speed) if (distance2(spl.pos, spl.destination) < src.speed*src.speed)
@@ -141,6 +158,11 @@ void Splashes::update()
// TODO: activate trigger // TODO: activate trigger
srcTriggerType strig = gameData->players.at(spl.PlayerId)->srcTowers.at(spl.srcTower).triggers.at(spl.trigsOnDest.at(k).src); srcTriggerType strig = gameData->players.at(spl.PlayerId)->srcTowers.at(spl.srcTower).triggers.at(spl.trigsOnDest.at(k).src);
if (strig.delParent) deadIndexes.push_back(spl.id); if (strig.delParent) deadIndexes.push_back(spl.id);
if (strig.count > 0 && strig.childId > 0)
{
//qDebug("bvgbjdklbvfjldsk");
addSplash(spl.PlayerId,spl.srcTower,strig.childId,spl.pos,spl.destination,-1,spl.TowerId);
}
if (strig.damage > 0) if (strig.damage > 0)
{ {
if (!(strig.radius > 0)) if (!(strig.radius > 0))
@@ -150,7 +172,7 @@ void Splashes::update()
float hh = gameData->curAliens[spl.AlienId].health -= strig.damage; float hh = gameData->curAliens[spl.AlienId].health -= strig.damage;
if (hh < 0) if (hh < 0)
gameData->curAliens.remove(spl.AlienId); gameData->curAliens.remove(spl.AlienId);
qDebug() << "health=" << hh; //qDebug() << "health=" << hh;
} }
} else { } else {
processTrigger(strig,spl.pos); processTrigger(strig,spl.pos);
@@ -169,6 +191,24 @@ void Splashes::update()
} else { } else {
if (!gameData->map->rect().contains(spl.pos.toPoint())) if (!gameData->map->rect().contains(spl.pos.toPoint()))
deadIndexes.push_back(spl.id); deadIndexes.push_back(spl.id);
if (!spl.trigsOnDest.isEmpty())
{
if (distance2(spl.pos, spl.destination) < src.speed*src.speed)
{
spl.pos = spl.destination;
for (int k=0; k<spl.trigsOnDest.size(); k++)
{
srcTriggerType strig = gameData->players.at(spl.PlayerId)->srcTowers.at(spl.srcTower).triggers.at(spl.trigsOnDest.at(k).src);
if (strig.delParent) deadIndexes.push_back(spl.id);
processTrigger(strig,spl.pos);
if (strig.count > 0 && strig.childId > 0)
{
//qDebug("bvgbjdklbvfjldsk");
addSplash(spl.PlayerId,spl.srcTower,strig.childId,spl.pos,spl.destination,-1,spl.TowerId);
}
}
}
}
spl.pos.setX(spl.pos.x() spl.pos.setX(spl.pos.x()
-src.speed*std::sin(-spl.angle*M_PI/180.f)); -src.speed*std::sin(-spl.angle*M_PI/180.f));
spl.pos.setY(spl.pos.y() spl.pos.setY(spl.pos.y()
@@ -191,7 +231,7 @@ void Splashes::delSplash(int Id)
void Splashes::processTrigger(srcTriggerType srctrig, QPointF pos) void Splashes::processTrigger(srcTriggerType srctrig, QPointF pos)
{ {
qDebug("trig proc"); //qDebug("trig proc");
QList <int> dead; QList <int> dead;
for (QHash<int, AlienType>::iterator i = gameData->curAliens.begin(); i != gameData->curAliens.end(); ++i) for (QHash<int, AlienType>::iterator i = gameData->curAliens.begin(); i != gameData->curAliens.end(); ++i)
{ {

View File

@@ -8,7 +8,7 @@ class Splashes : public QObject
Q_OBJECT Q_OBJECT
public: public:
explicit Splashes(Game_Data * gd, QObject *parent = 0); explicit Splashes(Game_Data * gd, QObject *parent = 0);
bool addSplash(int srcId, QPointF pos); void addSplash( int player, int srcTower, int srcId, QPointF pos, QPointF dest, int aim, QPoint curTower);
void delSplash(int Id); void delSplash(int Id);
void update(); void update();
signals: signals:

View File

@@ -30,6 +30,7 @@ bool Towers::addTower(int playerId, int srcId, QPoint pos)
tw.build = 0; tw.build = 0;
tw.reload = 0; tw.reload = 0;
tw.aim = -1; tw.aim = -1;
tw.experience = 0;
//tw .oldAim = -1; //tw .oldAim = -1;
if (gameData->map->addTowerOnMap(playerId,pos)) if (gameData->map->addTowerOnMap(playerId,pos))
{ {
@@ -96,6 +97,7 @@ void Towers::update()
if ((*i).aim > 0) if ((*i).aim > 0)
{ {
(*i).reload = 0; (*i).reload = 0;
(*i).experience += stw.expByShot;
emit shot((*i).pos); emit shot((*i).pos);
//qDebug("shot!"); //qDebug("shot!");
} }