[Orxonox-commit 5488] r10151 - code/branches/towerdefenseHS14/src/modules/towerdefense
erbj at orxonox.net
erbj at orxonox.net
Wed Dec 3 17:06:11 CET 2014
Author: erbj
Date: 2014-12-03 17:06:11 +0100 (Wed, 03 Dec 2014)
New Revision: 10151
Modified:
code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.cc
code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.h
code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseEnemy.cc
Log:
waves added
Modified: code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.cc
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.cc 2014-12-03 15:19:09 UTC (rev 10150)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.cc 2014-12-03 16:06:11 UTC (rev 10151)
@@ -298,13 +298,63 @@
std::vector<TDCoordinate*> path;
path.push_back(coord1);
- if(time>1 && TowerDefenseEnemyvector.size() < 30)
- {
- addTowerDefenseEnemy(path, rand() %3 +1 );
- time = time-1;
- }
+ if(time>1 && TowerDefenseEnemyvector.size() < 30)
+ {
+ addTowerDefenseEnemy(path, rand() %3 +1 );
+ time = time-1;
+ }
+ Vector3* endpoint = new Vector3(500, 700, 150);
+ for(int i =0; i < TowerDefenseEnemyvector.size(); ++i)
+ {
+
+ //orxout() << TowerDefenseEnemyvector.at(i) << endl;
+ //continue;
+
+ //ArtificialController* controller = (ArtificialController*)this->getController();
+ if(TowerDefenseEnemyvector.at(i) != NULL && TowerDefenseEnemyvector.at(i)->isAlive())
+ {
+ orxout() << "Variable i: " << i << endl;
+
+ Vector3 ship = TowerDefenseEnemyvector.at(i)->getRVWorldPosition();
+
+ float distance = ship.distance(*endpoint);
+
+ //orxout() << "distance" << distance << endl;
+ if(distance <50){
+ // orxout() << "ENEMY KILLED!!!!" << endl;
+ TowerDefenseEnemyvector.at(i)->destroy();
+ }
+ }
+ else
+ {
+ //TowerDefenseEnemyvector.erase(TowerDefenseEnemyvector.begin() +i);
+ }
+ }
+
+ int count= 0;
+ for(int i =0; i < TowerDefenseEnemyvector.size(); ++i)
+ {
+ if(TowerDefenseEnemyvector.at(i)!= NULL)
+ {
+ ++count;
+ }
+ }
+
+ if(count== 0)
+ {
+ time2 +=dt;
+ if(time2 > 10)
+ {
+ TowerDefenseEnemyvector.clear();
+ time=0;
+ time2=0;
+ }
+ }
+
+
+
}
// Function to test if we can add waypoints using code only. Doesn't work yet
Modified: code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.h
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.h 2014-12-03 15:19:09 UTC (rev 10150)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.h 2014-12-03 16:06:11 UTC (rev 10151)
@@ -53,7 +53,7 @@
TowerDefense(Context* context);
virtual ~TowerDefense();
- std::vector<TowerDefenseEnemy*> TowerDefenseEnemyvector;
+ std::vector<orxonox::WeakPtr<TowerDefenseEnemy> > TowerDefenseEnemyvector;
bool towermatrix[16][16];
void addTowerDefenseEnemy(std::vector<TDCoordinate*> path, int templatenr);
virtual void start(); //<! The function is called when the gametype starts
@@ -88,6 +88,7 @@
private:
TowerDefenseCenterpoint *center_;
float time;
+ float time2;
/* handles stats */
TowerDefensePlayerStats *stats_;
Modified: code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseEnemy.cc
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseEnemy.cc 2014-12-03 15:19:09 UTC (rev 10150)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseEnemy.cc 2014-12-03 16:06:11 UTC (rev 10151)
@@ -41,16 +41,6 @@
{
SUPER(TowerDefenseEnemy, tick, dt);
- //ArtificialController* controller = (ArtificialController*)this->getController();
- Vector3 ship = this->getRVWorldPosition();
- Vector3* endpoint = new Vector3(500, 700, 150);
-
- float distance = ship.distance(*endpoint);
-
- //orxout() << "distance" << distance << endl;
- if(distance <50){
- // orxout() << "ENEMY KILLED!!!!" << endl;
- this->destroy(); }
}
/*
More information about the Orxonox-commit
mailing list