[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