[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