Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Apr 21, 2012, 11:47:19 PM (12 years ago)
Author:
jo
Message:

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:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.cc

    r9098 r9112  
    11/*
    2  * TowerDefense.cpp
     2 *   ORXONOX - the hottest 3D action shooter ever to exist
     3 *                    > www.orxonox.net <
    34 *
    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 *
    655 */
    756
    8 #include <towerdefense/TowerDefense.h>
     57#include "TowerDefense.h"
    958
    10 TowerDefense::TowerDefense() {
    11         // TODO Auto-generated constructor stub
     59namespace orxonox
     60{
     61    CreateUnloadableFactory(TowerDefense);
    1262
     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    }*/
    13133}
    14 
    15 TowerDefense::~TowerDefense() {
    16         // TODO Auto-generated destructor stub
    17 }
Note: See TracChangeset for help on using the changeset viewer.