[Orxonox-commit 4483] r9154 - in code/branches/newlevel2012: data/levels src/modules/towerdefense src/orxonox/controllers

mentzerf at orxonox.net mentzerf at orxonox.net
Fri May 4 14:51:45 CEST 2012


Author: mentzerf
Date: 2012-05-04 14:51:44 +0200 (Fri, 04 May 2012)
New Revision: 9154

Modified:
   code/branches/newlevel2012/data/levels/towerDefense.oxw
   code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.cc
   code/branches/newlevel2012/src/modules/towerdefense/TowerDefenseCenterpoint.cc
   code/branches/newlevel2012/src/modules/towerdefense/TowerDefenseCenterpoint.h
   code/branches/newlevel2012/src/orxonox/controllers/WaypointController.cc
Log:
* Fixed size of oxw stuff.
+ Added tileScale to TowerDefenseCenterpoint to store the scale of the oxw
- Removed WaypointController debug prints

Modified: code/branches/newlevel2012/data/levels/towerDefense.oxw
===================================================================
--- code/branches/newlevel2012/data/levels/towerDefense.oxw	2012-05-04 12:43:23 UTC (rev 9153)
+++ code/branches/newlevel2012/data/levels/towerDefense.oxw	2012-05-04 12:51:44 UTC (rev 9154)
@@ -24,7 +24,7 @@
 <Template name=centerpointmarkcamera defaults=0>
   <Pawn>
     <camerapositions>
-      <CameraPosition position="0,0,20"/>
+      <CameraPosition position="0,0,2000"/>
     </camerapositions>
   </Pawn>
 </Template>
@@ -43,7 +43,7 @@
 <Template name=towertemplate>
   <Tower>
     <attached>
-      <Model position="0,0,0" scale=0.25 mesh="Tower_ME.mesh" />
+      <Model position="0,0,0" scale=2.5 mesh="Tower_ME.mesh" />
     </attached>
   </Tower>
 </Template>
@@ -69,28 +69,30 @@
  	<!--SpawnPoint team=1 position="0,0,10" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipassff  /-->
  	<!--SpawnPoint team=0 position="0,0,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipassff /-->
  	
-	<!--SpaceShip position="-10,0,20" lookat="0,0,0" scale=0.3>
+	<SpaceShip position="-700,-500, 100" lookat="0,0,0" scale=10>
       <templates>
         <Template link=spaceshipassff />
       </templates>
       <controller>
-        <WaypointController accuracy=3>
+        <WaypointController accuracy=40>
           <waypoints>
-            <Model mesh="cube.mesh" scale=0.2 position="-8,-8,3" />
-            <Model mesh="cube.mesh" scale=0.2 position="8,8,3" />
-            <Model mesh="cube.mesh" scale=0.2 position="8,-8,3" />
-            <Model mesh="cube.mesh" scale=0.2 position="-8,8,3" />
+			  <!-- 1,3 10,3 10,11, 13,11 -->
+            <Model mesh="cube.mesh" scale=1 position="-700,-500, 100" />
+            <Model mesh="cube.mesh" scale=1 position=" 200,-500, 100" />
+            <Model mesh="cube.mesh" scale=1 position=" 200, 300, 100" />
+            <Model mesh="cube.mesh" scale=1 position=" 500, 300, 100" />
           </waypoints>
         </WaypointController>
       </controller>
-    </SpaceShip-->
+    </SpaceShip>
     
 
 	<!-- PlayField -->
 	<TowerDefenseCenterpoint 
 	name=towerdefensecenter 
 	width=16 
-	height=16 
+	height=16
+	tileScale=100
 	towerTemplate=towertemplate 
 	position="0,0,0" 
 	direction="0,0,0" 
@@ -98,7 +100,7 @@
 	mass=100000>
 		 
 		 <attached>
-			<Model position="-0.5,-0.5,0" mesh="Playfield_ME.mesh" scale=0.8 />
+			<Model position="-50,-50,0" mesh="Playfield_ME.mesh" scale=80 />
             <!--Model position="0,0,0" mesh="crate.mesh" scale3D="3,3,3" /--> <!-- Only temporary needed to help align the collisionshape -->
 			<!-- This was used to mark the playfield, let's let it be here for now -->
 			<!--Model position="-8,8,0" mesh="crate.mesh" scale3D="0.3,0.3,0.3" /-->

Modified: code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.cc
===================================================================
--- code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.cc	2012-05-04 12:43:23 UTC (rev 9153)
+++ code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.cc	2012-05-04 12:51:44 UTC (rev 9154)
@@ -152,20 +152,27 @@
 	
 	void TowerDefense::addTower(int x, int y)
 	{
-		if (x > 15 || y > 15 || x < 0 || y < 0)//Hard coded: TODO: let this depend on the centerpoint's height, width and fieldsize (fieldsize doesn't exist yet)
+		unsigned int width = this->center_->getWidth();
+		unsigned int height = this->center_->getHeight();
+		int tileScale = (int) this->center_->getTileScale();
+		
+		orxout() << "tile scale = " << tileScale << endl;
+		
+		if (x > 15 || y > 15 || x < 0 || y < 0)
 		{
+			//Hard coded: TODO: let this depend on the centerpoint's height, width and fieldsize (fieldsize doesn't exist yet)
 			orxout() << "Can not add Tower: x and y should be between 0 and 15" << endl;
 			return;
 		}
 		
-		orxout()<< "Will add tower at (" << x << "," << y << ")" << endl;
+		orxout() << "Will add tower at (" << (x-8) * tileScale << "," << (y-8) * tileScale << ")" << endl;
 		
 		Tower* newTower = new Tower(this->center_);
 		newTower->addTemplate(this->center_->getTowerTemplate());
 		
 		this->center_->attach(newTower);
 		
-		newTower->setPosition(x-8,y-8,0);
+		newTower->setPosition((x-8) * tileScale, (y-8) * tileScale, 0);
 		newTower->setGame(this);
 		//TODO: Save the Tower in a Vector. I would suggest std::vector< std::vector<Tower*> > towers_ as a protected member variable;
 		

Modified: code/branches/newlevel2012/src/modules/towerdefense/TowerDefenseCenterpoint.cc
===================================================================
--- code/branches/newlevel2012/src/modules/towerdefense/TowerDefenseCenterpoint.cc	2012-05-04 12:43:23 UTC (rev 9153)
+++ code/branches/newlevel2012/src/modules/towerdefense/TowerDefenseCenterpoint.cc	2012-05-04 12:51:44 UTC (rev 9154)
@@ -66,8 +66,10 @@
         SUPER(TowerDefenseCenterpoint, XMLPort, xmlelement, mode);
 
         XMLPortParam(TowerDefenseCenterpoint, "width", setWidth, getWidth, xmlelement, mode);
-        XMLPortParam(TowerDefenseCenterpoint, "height", setHeight, setWidth, xmlelement, mode);
+        XMLPortParam(TowerDefenseCenterpoint, "height", setHeight, getHeight, xmlelement, mode);
+		XMLPortParam(TowerDefenseCenterpoint, "tileScale", setTileScale, getTileScale, xmlelement, mode);
         XMLPortParam(TowerDefenseCenterpoint, "towerTemplate", setTowerTemplate, getTowerTemplate, xmlelement, mode);
+		
         //TODO: add XMLPortObject(TowerDefenseCenterpoint, WorldEntity, "waypoints", addWaypoint, getWaypoint,  xmlelement, mode);
         // This was copied and shightly modified from WaypointController.cc ; there are no getters and setters and no membervariable yet
         // The centerpoint should have all waypoints for "attached" to it. By using this function you can seperately add waypoints

Modified: code/branches/newlevel2012/src/modules/towerdefense/TowerDefenseCenterpoint.h
===================================================================
--- code/branches/newlevel2012/src/modules/towerdefense/TowerDefenseCenterpoint.h	2012-05-04 12:43:23 UTC (rev 9153)
+++ code/branches/newlevel2012/src/modules/towerdefense/TowerDefenseCenterpoint.h	2012-05-04 12:51:44 UTC (rev 9154)
@@ -68,6 +68,15 @@
             
 			unsigned int getHeight(void) const
                 { return this->height_; }
+			
+			/**
+			@brief How to convert to world coordinates, e.g. that 0,15 is not at -8,-8 but at -80,-80 (if scale would be 10)
+			*/
+			void setTileScale(unsigned int tileScale)
+				{ this->tileScale_ = tileScale; }
+			
+			unsigned int getTileScale(void) const
+				{ return this->tileScale_; }
                 
             /**
             @brief Set the template for the towers.
@@ -84,6 +93,8 @@
             
             unsigned int width_;
             unsigned int height_;
+			unsigned int tileScale_;
+			
             std::string towerTemplate_;
     };
 }

Modified: code/branches/newlevel2012/src/orxonox/controllers/WaypointController.cc
===================================================================
--- code/branches/newlevel2012/src/orxonox/controllers/WaypointController.cc	2012-05-04 12:43:23 UTC (rev 9153)
+++ code/branches/newlevel2012/src/orxonox/controllers/WaypointController.cc	2012-05-04 12:51:44 UTC (rev 9154)
@@ -64,17 +64,17 @@
 		if (!this->isActive())
             return;
 
-		orxout() << "(" << this->waypoints_.size() << ") entity: " << this->getControllableEntity() << endl;
+//		orxout() << "(" << this->waypoints_.size() << ") entity: " << this->getControllableEntity() << endl;
 
         if (this->waypoints_.size() == 0 || !this->getControllableEntity())
             return;
 
-		printf("3");
+//		printf("3");
 
         if (this->waypoints_[this->currentWaypoint_]->getWorldPosition().squaredDistance(this->getControllableEntity()->getPosition()) <= this->squaredaccuracy_)
             this->currentWaypoint_ = (this->currentWaypoint_ + 1) % this->waypoints_.size();
 
-		printf("4");
+//		printf("4");
 
         this->moveToPosition(this->waypoints_[this->currentWaypoint_]->getWorldPosition());
     }




More information about the Orxonox-commit mailing list