[Orxonox-commit 5479] r10142 - in code/branches/towerdefenseHS14: data/levels/templates src/modules/towerdefense
maxima at orxonox.net
maxima at orxonox.net
Wed Nov 26 17:14:34 CET 2014
Author: maxima
Date: 2014-11-26 17:14:33 +0100 (Wed, 26 Nov 2014)
New Revision: 10142
Added:
code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseTower.cc
code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseTower.h
Modified:
code/branches/towerdefenseHS14/data/levels/templates/tower.oxt
code/branches/towerdefenseHS14/src/modules/towerdefense/CMakeLists.txt
code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.cc
code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.h
code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseEnemy.cc
code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefensePlayerStats.h
code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefensePrereqs.h
Log:
hzilly. Alle files zusammengefuegt.
Modified: code/branches/towerdefenseHS14/data/levels/templates/tower.oxt
===================================================================
--- code/branches/towerdefenseHS14/data/levels/templates/tower.oxt 2014-11-26 15:41:02 UTC (rev 10141)
+++ code/branches/towerdefenseHS14/data/levels/templates/tower.oxt 2014-11-26 16:14:33 UTC (rev 10142)
@@ -1,5 +1,5 @@
<Template name=tower>
- <Tower
+ <TowerDefenseTower
explosionchunks = 6
@@ -8,7 +8,7 @@
reloadwaittime = 1
collisionType = "dynamic"
- team = 0
+ team = 2
>
@@ -19,10 +19,24 @@
</waypoints>
</WaypointPatrolController>
</controller>
+
<attached>
<Model position="0,0,0" scale=45 mesh="Tower.mesh" />
+
+ <Turret position="0,0,-100" collisionType="dynamic" angularDamping=0.999999 mass=100 maxPitch=90 maxYaw=90 maxAttackRadius=2000 minAttackRadius=30>
+
+ <collisionShapes>
+ <SphereCollisionShape radius="10" position = "0,0,0"/>
+ </collisionShapes>
+ <controller>
+ <TurretController/>
+ </controller>
+ <?lua
+ include("../includes/weaponSettingsTurret.oxi")
+ ?>
+ </Turret>
</attached>
<!--collisionShapes>
@@ -32,6 +46,6 @@
<?lua
include("../includes/towerWeaponSettings.oxi")
?>
- </Tower>
+ </TowerDefenseTower>
</Template>
Modified: code/branches/towerdefenseHS14/src/modules/towerdefense/CMakeLists.txt
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/CMakeLists.txt 2014-11-26 15:41:02 UTC (rev 10141)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/CMakeLists.txt 2014-11-26 16:14:33 UTC (rev 10142)
@@ -1,6 +1,6 @@
SET_SOURCE_FILES(TOWERDEFENSE_SRC_FILES
TowerDefense.cc
- Tower.cc
+ TowerDefenseTower.cc
TowerTurret.cc
TowerDefenseCenterpoint.cc
TowerDefenseHUDController.cc
Modified: code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.cc
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.cc 2014-11-26 15:41:02 UTC (rev 10141)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.cc 2014-11-26 16:14:33 UTC (rev 10142)
@@ -74,7 +74,7 @@
*/
#include "TowerDefense.h"
-//#include "Tower.h"
+#include "TowerDefenseTower.h"
#include "TowerTurret.h"
#include "TowerDefenseCenterpoint.h"
//#include "TDCoordinate.h"
@@ -129,23 +129,39 @@
orxout() << "test0" << endl;
Deathmatch::start();
+
+// Waypoints: [1,3] [10,3] [10,11] [13,11]
+ for (int i=0; i < 16 ; i++){
+ for (int j = 0; j< 16 ; j++){
+ towermatrix[i][j] = false;
+ }
+ }
+ for (int k=0; k<3; k++)
+ towermatrix[1][k]=true;
+ for (int l=1; l<11; l++)
+ towermatrix[l][3]=true;
+ for (int m=3; m<12; m++)
+ towermatrix[10][m]=true;
+ for (int n=10; n<14; n++)
+ towermatrix[n][11]=true;
+ for (int o=13; o<16; o++)
+ towermatrix[13][o]=true;
+
+
credits = 5000;
life = 20;
waves = 0;
time=0.0;
-/*
- const int kInitialTowerCount = 3;
+ const int kInitialTowerCount = 3;
for (int i = 0; i < kInitialTowerCount; i++)
{
- //{{3,2}, {8,5}, {12,10}}; old coordinates
- TDCoordinate* coordinate = new TDCoordinate(i,(i*2));
- addTower(coordinate->x, coordinate->y);
+ addTower(i+4,(i+5));
}
-*/
+
//add some TowerDefenseEnemys
@@ -220,7 +236,7 @@
void TowerDefense::addTower(int x, int y)
- {/*
+ {
const TowerCost towerCost = TDDefaultTowerCost;
if (!this->hasEnoughCreditForTower(towerCost))
@@ -229,9 +245,9 @@
return;
}
- if (this->towerExists(x,y))
+ if (towermatrix [x][y]==true)
{
- orxout() << "tower exists!!" << endl;
+ orxout() << "not possible to put tower here!!" << endl;
return;
}
@@ -251,23 +267,20 @@
orxout() << "Will add tower at (" << (x-8) * tileScale << "," << (y-8) * tileScale << ")" << endl;
- // Add tower to coordinatesStack
- TDCoordinate newTowerCoordinates;
- newTowerCoordinates.x=x;
- newTowerCoordinates.y=y;
+
+ //Reduce credit
+ this->stats_->buyTower(towerCost);
- addedTowersCoordinates_.push_back(newTowerCoordinates);
+ orxout() << "Credit: " << this->stats_->getCredit() << endl;
- // Reduce credit
- this->stats_->buyTower(towerCost);
+ // Create tower
+ TowerDefenseTower* towernew = new TowerDefenseTower(this->center_->getContext());
+ towernew->addTemplate("tower");
+ towernew->setPosition(static_cast<float>((x-8) * tileScale), static_cast<float>((y-8) * tileScale), 75);
+ towernew->setGame(this);
- // Create tower
- TowerTurret* newTower = new TowerTurret(this->center_->getContext());
- newTower->addTemplate(this->center_->getTowerTemplate());
-
- newTower->setPosition(static_cast<float>((x-8) * tileScale), static_cast<float>((y-8) * tileScale), 75);
- newTower->setGame(this);*/
+ towermatrix[x][y]=true;
}
bool TowerDefense::hasEnoughCreditForTower(TowerCost towerCost)
@@ -275,19 +288,7 @@
return ((this->stats_->getCredit()) >= towerCost);
}
- bool TowerDefense::towerExists(int x, int y)
- {
- for(std::vector<TDCoordinate>::iterator it = addedTowersCoordinates_.begin(); it != addedTowersCoordinates_.end(); ++it)
- {
- TDCoordinate currentCoordinates = (TDCoordinate) (*it);
- if (currentCoordinates.x == x && currentCoordinates.y == y)
- return true;
- }
-
- return false;
- }
-
-
+
void TowerDefense::tick(float dt)
{
SUPER(TowerDefense, tick, dt);
Modified: code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.h
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.h 2014-11-26 15:41:02 UTC (rev 10141)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.h 2014-11-26 16:14:33 UTC (rev 10142)
@@ -54,7 +54,7 @@
virtual ~TowerDefense();
std::vector<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
virtual void end();
@@ -93,10 +93,6 @@
TowerDefensePlayerStats *stats_;
bool hasEnoughCreditForTower(TowerCost towerCost);
- bool towerExists(int x, int y);
-
-
- std::vector<TDCoordinate> addedTowersCoordinates_;
std::vector<TowerTurret*> towers_;
};
}
Modified: code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseEnemy.cc
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseEnemy.cc 2014-11-26 15:41:02 UTC (rev 10141)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseEnemy.cc 2014-11-26 16:14:33 UTC (rev 10142)
@@ -47,9 +47,9 @@
float distance = ship.distance(*endpoint);
- orxout() << "distance" << distance << endl;
+ //orxout() << "distance" << distance << endl;
if(distance <50){
- orxout() << "ENEMY KILLED!!!!" << endl;
+ // orxout() << "ENEMY KILLED!!!!" << endl;
this->destroy(); }
}
Modified: code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefensePlayerStats.h
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefensePlayerStats.h 2014-11-26 15:41:02 UTC (rev 10141)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefensePlayerStats.h 2014-11-26 16:14:33 UTC (rev 10142)
@@ -43,7 +43,7 @@
{
typedef enum _TowerCosts {
// Set to 0 for debug...
- TDDefaultTowerCost = 0
+ TDDefaultTowerCost = 20
} TowerCost;
class _TowerDefenseExport TowerDefensePlayerStats
Modified: code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefensePrereqs.h
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefensePrereqs.h 2014-11-26 15:41:02 UTC (rev 10141)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefensePrereqs.h 2014-11-26 16:14:33 UTC (rev 10142)
@@ -65,7 +65,7 @@
namespace orxonox
{
class TowerDefense;
- //class Tower;
+ class TowerDefenseTower;
class TowerDefenseCenterpoint;
class TowerDefenseHUDController;
class TowerDefensePlayerStats;
Added: code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseTower.cc
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseTower.cc (rev 0)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseTower.cc 2014-11-26 16:14:33 UTC (rev 10142)
@@ -0,0 +1,113 @@
+//
+// TowerDefenseTower.cc
+// Orxonox
+//
+// Created by Fabian Mentzer on 29.04.12.
+// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
+//
+
+/* Not implemented fully */
+
+#include "TowerDefenseTower.h"
+
+#include "core/CoreIncludes.h"
+//#include "core/XMLPort.h"
+
+namespace orxonox
+{
+ RegisterClass(TowerDefenseTower);
+
+ /**
+ @brief
+ Constructor. Registers and initializes the object.
+ */
+ TowerDefenseTower::TowerDefenseTower(Context* context) : Pawn(context)
+ {
+ RegisterObject(TowerDefenseTower);
+
+ this->setCollisionType(WorldEntity::Dynamic);
+
+ //this->removeAllEngines();
+
+ /*
+ this->size_ = 10.0f;
+ this->delay_ = false;
+ this->delayTimer_.setTimer(0.2f, false, createExecutor(createFunctor(&TetrisStone::enableMovement, this)));
+ */
+ }
+
+ void TowerDefenseTower::setOrientation(const Quaternion& orientation)
+ {
+ static int ori;
+ //orxout() << "orientation " << ++ori << endl;
+ }
+
+ void TowerDefenseTower::rotateYaw(const Vector2& value)
+ {
+ static int yaw;
+ //orxout() << "rotateYaw " << ++yaw << endl;
+ }
+
+ void TowerDefenseTower::rotatePitch(const Vector2& value)
+ {
+ static int pitch;
+ //orxout() << "rotatePitch " << ++pitch << endl;
+ }
+
+ void TowerDefenseTower::rotateRoll(const Vector2& value)
+ {
+ static int roll;
+ //orxout() << "rotateRoll" << ++roll << endl;
+ }
+
+ // This function is called whenever a player presses the up or the down key.
+ // You have to implement what happens when the up or the down key is pressed.
+ // value.x < 0 means: down key is pressed.
+ // I suggest to create a new class which is a controllable entity I will refer to as "TowerDefenseTowerMover". This is the controllable entity that the
+ // player controls in order to move the TowerDefenseTower along the centerpoint and in order to place the TowerDefenseTower at the appropriate position.
+ //
+
+ // The TowerDefenseTower itsself is controlled by a WayPointPatroController at the instance you place it on the centerpoint.
+ //(don't forget to set the team_ parameter such that all TowerDefenseTower are in the same team)
+
+ //How to move a TowerDefenseTower: simply attach the TowerDefenseTower to the TowerDefenseTowerMover
+ //How to place a TowerDefenseTower: detach the TowerDefenseTower from the TowerDefenseTowerMover
+
+ /**
+ @brief
+ Overloaded the function to rotate the stone.
+ @param value
+ A vector whose first component is the angle by which to rotate.
+ */
+ /*
+ void TowerDefenseTower::moveFrontBack(const Vector2& value)
+ {
+ //orxout() << "frontBack.x: " << value.x << endl;
+ }
+ */
+
+ /**
+ @brief
+ Overloaded the function to steer the stone right and left
+ @param value
+ A vector whose first component is the direction in which we want to steer the stone.
+ */
+ /*
+ void TowerDefenseTower::moveRightLeft(const Vector2& value)
+ {
+ //orxout() << "rightLeft.x: " << value.x << endl;
+
+ if(!this->delay_)
+ {
+ const Vector3& position = this->getPosition();
+ Vector3 newPos = Vector3(position.x+value.x/abs(value.x)*this->size_, position.y, position.z);
+ if(!this->tetris_->isValidMove(this, newPos))
+ return;
+
+ this->setPosition(newPos);
+ this->delay_ = true;
+ this->delayTimer_.startTimer();
+ }
+ }
+ */
+}
Added: code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseTower.h
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseTower.h (rev 0)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseTower.h 2014-11-26 16:14:33 UTC (rev 10142)
@@ -0,0 +1,52 @@
+//
+// TowerDefenseTower.h
+// Orxonox
+//
+// Created by Fabian Mentzer on 29.04.12.
+// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
+//
+
+/**
+ at brief
+See TowerDefenseTowerDefenseReadme.txt for Information.
+
+ at ingroup TowerDefenseTowerDefense
+*/
+
+
+#ifndef Orxonox_TowerDefenseTower_h
+#define Orxonox_TowerDefenseTower_h
+
+#include "towerdefense/TowerDefensePrereqs.h"
+#include "worldentities/pawns/SpaceShip.h"
+
+
+namespace orxonox
+{
+ class _TowerDefenseExport TowerDefenseTower : public Pawn
+ {
+ public:
+ TowerDefenseTower(Context* context);
+ virtual ~TowerDefenseTower() {};
+
+ // Maybe later override these to move TowerDefenseTowers with cursor keys
+ /*
+ virtual void moveFrontBack(const Vector2& value);
+ virtual void moveRightLeft(const Vector2& value);
+ */
+
+ // Overriding these to stop TowerDefenseTowers from spasing out
+ void setOrientation(const Quaternion& orientation);
+ virtual void rotateYaw(const Vector2& value);
+ virtual void rotatePitch(const Vector2& value);
+ virtual void rotateRoll(const Vector2& value);
+
+ void setGame(TowerDefense* Towerdefense)
+ { assert(Towerdefense); game_ = Towerdefense; }
+ private:
+ TowerDefense* game_;
+ };
+}
+
+
+#endif
More information about the Orxonox-commit
mailing list