Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.cc @ 9113

Last change on this file since 9113 was 9112, checked in by jo, 13 years ago

Created minimal working version for the TowerDefence module. The code compiles and the level runs. Unfortunately an 'Playfield_ME.mesh' cannot be loaded on my machine.

File size: 4.4 KB
Line 
1/*
2 *   ORXONOX - the hottest 3D action shooter ever to exist
3 *                    > www.orxonox.net <
4 *
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 *
55 */
56
57#include "TowerDefense.h"
58
59namespace orxonox
60{
61    CreateUnloadableFactory(TowerDefense);
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    }*/
133}
Note: See TracBrowser for help on using the repository browser.