Changeset 9112 for code/branches/newlevel2012/src
- Timestamp:
- Apr 21, 2012, 11:47:19 PM (13 years ago)
- Location:
- code/branches/newlevel2012/src/modules/towerdefense
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/newlevel2012/src/modules/towerdefense/CMakeLists.txt
r9110 r9112 1 1 SET_SOURCE_FILES(TOWERDEFENSE_SRC_FILES 2 TowerDefense.cc 2 3 TowerDefenseCenterpoint.cc 3 TowerDefense.cc4 4 ) 5 5 -
code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.cc
r9098 r9112 1 1 /* 2 * TowerDefense.cpp 2 * ORXONOX - the hottest 3D action shooter ever to exist 3 * > www.orxonox.net < 3 4 * 4 * Created on: Apr 20, 2012 5 * Author: mentzerf 5 * 6 * License notice: 7 * 8 * This program is free software; you can redistribute it and/or 9 * modify it under the terms of the GNU General Public License 10 * as published by the Free Software Foundation; either version 2 11 * of the License, or (at your option) any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with this program; if not, write to the Free Software 20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 21 * 22 * Author: 23 * 24 * Co-authors: 25 * ... 26 * 27 *NACHRICHT: 28 * Ich habe die Klasse Deathmatch einfach per Copy&Paste&Rename als Vorlage für euren Deathmatch genommen. 29 * Ein Deathmatch erbt vom Gametype. Der einzige Unterschied zum Gametype ist, dass hier ein bisschen 30 * Textausgabe stattfindet. Sollte das Später nicht erwünscht sein, könnt ihr einfach die Gametype-Klasse 31 * an die Stelle von Deathmatch setzten. 32 * 33 * Hier empfehle ich euch die gesamte Spielogik unter zu bringen. Viele Funktionen werden automatisch 34 * bei gewissen Ereignissen aufgerufen bzw. lösen Ereignisse aus 35 * 36 *Z.B: 37 * start() //wird aufgerufen, bevor das Spiel losgeht 38 * end() //wenn man diese Funktion aufruft wird 39 * pawnKilled() // wird aufgerufen, wenn ein Pawn stirbt (z.B: wenn ) 40 * playerScored() // kann man aufrufen um dem Spieler Punkte zu vergeben. 41 * 42 * 43 * 44 *TIPP: Eclipse hilft euch schnell auf bereits vorhanden Funktionen zuzugreifen: 45 * einfach "this->" eingeben und kurz warten. Dann tauch eine Liste mit Vorschlägen auf. Wenn ihr jetzt weiter 46 * tippt, werden die Vorschläge entsprechend gefiltert. 47 * 48 * 49 *TIPP: schaut euch mal Tetris::createStone() an. Dort wird ein TetrisStone-Objekt (ControllableEntity) erzeugt, 50 * ihm ein Template zugewiesen (welches vorher im Level definiert wurde und dem CenterPoint übergeben wurde) 51 * Ähnlich könnt ihr vorgehen, um einen Turm zu erzeugen. (Zusätzlich braucht ein Turm noch einen Controller) 52 * z.B: WaypointPatrolController. Wenn kein Team zugewiesen wurde bekämpft ein WaypointPatrolController alles, 53 * was in seiner Reichweite liegt. 54 * 6 55 */ 7 56 8 #include <towerdefense/TowerDefense.h>57 #include "TowerDefense.h" 9 58 10 TowerDefense::TowerDefense() { 11 // TODO Auto-generated constructor stub 59 namespace orxonox 60 { 61 CreateUnloadableFactory(TowerDefense); 12 62 63 TowerDefense::TowerDefense(BaseObject* creator) : Deathmatch(creator) 64 { 65 RegisterObject(TowerDefense); 66 67 } 68 69 void TowerDefense::start() 70 { 71 Deathmatch::start(); 72 orxout()<< "This is a way to display output on the terminal." <<endl; 73 //Tipp: Fenster-Modus über die Grafikeinstellungen einstellen. 74 //(dazu den Bulletpoint 'Fullscreen' entfernen, eine kleine Auflösung auswählen und auf 'Apply' klicken.) 75 } 76 /* 77 void TowerDefense::end() 78 { 79 Deathmatch::end(); 80 81 std::string message("The match has ended."); 82 ChatManager::message(message); 83 } 84 85 void TowerDefense::playerEntered(PlayerInfo* player) 86 { 87 Deathmatch::playerEntered(player); 88 89 const std::string& message = player->getName() + " entered the game"; 90 ChatManager::message(message); 91 } 92 93 bool TowerDefense::playerLeft(PlayerInfo* player) 94 { 95 bool valid_player = Deathmatch::playerLeft(player); 96 97 if (valid_player) 98 { 99 const std::string& message = player->getName() + " left the game"; 100 ChatManager::message(message); 101 } 102 103 return valid_player; 104 } 105 106 107 void TowerDefense::pawnKilled(Pawn* victim, Pawn* killer) 108 { 109 if (victim && victim->getPlayer()) 110 { 111 std::string message; 112 if (killer) 113 { 114 if (killer->getPlayer()) 115 message = victim->getPlayer()->getName() + " was killed by " + killer->getPlayer()->getName(); 116 else 117 message = victim->getPlayer()->getName() + " was killed"; 118 } 119 else 120 message = victim->getPlayer()->getName() + " died"; 121 122 ChatManager::message(message); 123 } 124 125 Deathmatch::pawnKilled(victim, killer); 126 } 127 128 void TowerDefense::playerScored(PlayerInfo* player) 129 { 130 Gametype::playerScored(player); 131 132 }*/ 13 133 } 14 15 TowerDefense::~TowerDefense() {16 // TODO Auto-generated destructor stub17 } -
code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.h
r9103 r9112 1 1 /* 2 * TowerDefense.h 2 * ORXONOX - the hottest 3D action shooter ever to exist 3 * > www.orxonox.net < 3 4 * 4 * Created on: Apr 20, 2012 5 * Author: mentzerf 5 * 6 * License notice: 7 * 8 * This program is free software; you can redistribute it and/or 9 * modify it under the terms of the GNU General Public License 10 * as published by the Free Software Foundation; either version 2 11 * of the License, or (at your option) any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with this program; if not, write to the Free Software 20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 21 * 22 * Author: 23 * 24 * Co-authors: 25 * ... 26 * 6 27 */ 7 28 8 #ifndef TOWERDEFENSE_H_9 #define TOWERDEFENSE_H_29 #ifndef _TowerDefense_H__ 30 #define _TowerDefense_H__ 10 31 11 #include <Gametype.h> 32 #include "towerdefense/TowerDefensePrereqs.h" 33 #include "gametypes/Deathmatch.h" 12 34 13 class TowerDefense: public orxonox::Deathmatch { 14 public: 15 TowerDefense(); 16 virtual ~TowerDefense(); 17 }; 35 namespace orxonox 36 { 37 class _OrxonoxExport TowerDefense : public Deathmatch 38 { 39 public: 40 TowerDefense(BaseObject* creator); 41 virtual ~TowerDefense() {} 18 42 19 #endif /* TOWERDEFENSE_H_ */ 43 virtual void start(); //<! The function is called when the gametype starts 44 /*virtual void end(); 45 virtual void playerEntered(PlayerInfo* player); 46 virtual bool playerLeft(PlayerInfo* player); 47 48 virtual void pawnKilled(Pawn* victim, Pawn* killer = 0); 49 virtual void playerScored(PlayerInfo* player);*/ 50 }; 51 } 52 53 #endif /* _TowerDefense_H__ */ -
code/branches/newlevel2012/src/modules/towerdefense/TowerDefenseCenterpoint.cc
r9110 r9112 53 53 this->width_ = 10; 54 54 this->height_ = 11; 55 this-> stoneTemplate_ = "";55 this->towerTemplate_ = ""; 56 56 57 57 this->checkGametype(); … … 68 68 XMLPortParam(TowerDefenseCenterpoint, "width", setWidth, getWidth, xmlelement, mode); // die Breite 69 69 XMLPortParam(TowerDefenseCenterpoint, "height", setHeight, setWidth, xmlelement, mode); // die Grösse 70 XMLPortParam(TowerDefenseCenterpoint, " stoneTemplate", setStoneTemplate, getStoneTemplate, xmlelement, mode);70 XMLPortParam(TowerDefenseCenterpoint, "towerTemplate", setTowerTemplate, getTowerTemplate, xmlelement, mode); 71 71 } 72 72 … … 91 91 if (this->getGametype() != NULL && this->getGametype()->isA(Class(TowerDefense))) 92 92 { 93 TowerDefense* TowerDefenseGametype = orxonox_cast<TowerDefense*>(this->getGametype().get());94 TowerDefenseGametype->setCenterpoint(this);93 //TowerDefense* TowerDefenseGametype = orxonox_cast<TowerDefense*>(this->getGametype().get()); 94 //TowerDefenseGametype->setCenterpoint(this); 95 95 } 96 96 } -
code/branches/newlevel2012/src/modules/towerdefense/TowerDefenseCenterpoint.h
r9110 r9112 36 36 #define _TowerDefenseCenterpoint_H__ 37 37 38 #include " TowerDefense/TowerDefensePrereqs.h"38 #include "towerdefense/TowerDefensePrereqs.h" 39 39 40 40 #include <string> … … 92 92 93 93 /** 94 95 94 @brief Set the template for the towers. 95 @param template The template name to be applied to each tower. 96 */ 97 void setTowerTemplate(const std::string& templateName) 98 { this->towerTemplate_ = templateName; } 96 99 /** 97 * TODO; Replace stone with tower 98 @brief Set the template for the stones. 99 @param template The template name to be applied to each stone. 100 @brief Get the template for the towers. 101 @return Returns the template name to be applied to each tower. 100 102 */ 101 //void setStoneTemplate(const std::string& templateName) 102 // { this->stoneTemplate_ = templateName; } 103 /** 104 @brief Get the template for the stones. 105 @return Returns the template name to be applied to each stone. 106 */ 107 //const std::string& getStoneTemplate(void) const 108 // { return this->stoneTemplate_; } 103 const std::string& getTowerTemplate(void) const 104 { return this->towerTemplate_; } 109 105 110 106 … … 114 110 unsigned int width_; 115 111 unsigned int height_; 116 //std::string stoneTemplate_;112 std::string towerTemplate_; 117 113 118 114 };
Note: See TracChangeset
for help on using the changeset viewer.