Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 24, 2012, 10:07:43 PM (12 years ago)
Author:
landauf
Message:

tower defense update (again, now hopefully successful)

Location:
code/branches/presentation2012
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • code/branches/presentation2012

  • code/branches/presentation2012/src/modules/towerdefense/Tower.cc

    r9229 r9245  
    2222         Constructor. Registers and initializes the object.
    2323         */
    24     Tower::Tower(BaseObject* creator) : SpaceShip(creator)
     24    Tower::Tower(BaseObject* creator) : Pawn(creator)
    2525    {
    2626        RegisterObject(Tower);
     
    3636                */
    3737    }
     38       
     39        void Tower::setOrientation(const Quaternion& orientation)
     40        {
     41                static int ori;
     42                orxout() << "orientation " << ++ori << endl;
     43        }
     44       
     45        void Tower::rotateYaw(const Vector2& value)
     46        {
     47                static int yaw;
     48                orxout() << "rotateYaw " << ++yaw << endl;
     49        }
     50       
     51        void Tower::rotatePitch(const Vector2& value)
     52        {
     53                static int pitch;
     54                orxout() << "rotatePitch " << ++pitch << endl;
     55        }
     56       
     57        void Tower::rotateRoll(const Vector2& value)
     58        {
     59                static int roll;
     60                orxout() << "rotateRoll" << ++roll << endl;
     61        }
     62               
    3863        // This function is called whenever a player presses the up or the down key.
    3964    // You have to implement what happens when the up or the down key is pressed.
     
    5580         A vector whose first component is the angle by which to rotate.
    5681         */
     82                 /*
    5783    void Tower::moveFrontBack(const Vector2& value)
    5884    {
    5985        //orxout() << "frontBack.x: " << value.x << endl;
    6086    }
     87        */
    6188       
    6289    /**
     
    6693         A vector whose first component is the direction in which we want to steer the stone.
    6794         */
     95                 /*
    6896    void Tower::moveRightLeft(const Vector2& value)
    6997    {
    7098                //orxout() << "rightLeft.x: " << value.x << endl;
    71                 /*
     99               
    72100        if(!this->delay_)
    73101        {
     
    80108            this->delay_ = true;
    81109            this->delayTimer_.startTimer();
    82         }
    83                  */
     110                }
    84111    }
     112        */
    85113}
  • code/branches/presentation2012/src/modules/towerdefense/Tower.h

    r9229 r9245  
    2020#include "towerdefense/TowerDefensePrereqs.h"
    2121#include "worldentities/pawns/SpaceShip.h"
     22       
    2223
    2324namespace orxonox
    2425{
    25     class _OrxonoxExport Tower : public SpaceShip
     26    class _OrxonoxExport Tower : public Pawn
    2627    {
    2728        public:
     
    2930                virtual ~Tower() {};
    3031               
     32                // Maybe later override these to move towers with cursor keys
     33                /*
    3134                virtual void moveFrontBack(const Vector2& value);
    3235                virtual void moveRightLeft(const Vector2& value);
     36                */
     37               
     38                // Overriding these to stop towers from spasing out
     39                void setOrientation(const Quaternion& orientation);
     40        virtual void rotateYaw(const Vector2& value);
     41        virtual void rotatePitch(const Vector2& value);
     42        virtual void rotateRoll(const Vector2& value);
    3343               
    3444                void setGame(TowerDefense* towerdefense)
  • code/branches/presentation2012/src/modules/towerdefense/TowerDefense.cc

    r9229 r9245  
    105105                /* Temporary hack to allow the player to add towers */
    106106                this->dedicatedAddTower_ = createConsoleCommand( "addTower", createExecutor( createFunctor(&TowerDefense::addTower, this) ) );
    107        
    108                 // Quick hack to test waypoints
    109                 createConsoleCommand( "aw", createExecutor( createFunctor(&TowerDefense::addWaypointsAndFirstEnemy, this) ) );
    110107    }
    111108       
     
    131128        Deathmatch::start();
    132129               
    133         orxout() << "Adding towers for debug..." << endl;
    134                
    135                 // Mark corners
    136                 addTower(0,15); addTower(15,0);
    137                
    138                 // Mark diagonal line
    139                 for (int i = 0 ; i <= 15; i++)
    140                         addTower(i,i);
    141                
    142                 orxout() << "Done" << endl;
     130                const int kInitialTowerCount = 3;
     131                Coordinate initialTowerCoordinates[kInitialTowerCount] = {{3,2}, {8,5}, {12,10}};
     132               
     133                for (int i = 0; i < kInitialTowerCount; i++)
     134                {
     135                        Coordinate coordinate = initialTowerCoordinates[i];
     136                        addTower(coordinate.x, coordinate.y);
     137                }
    143138               
    144139                ChatManager::message("Use the console command addTower x y to add towers");
    145140
    146141                //TODO: let the player control his controllable entity && TODO: create a new ControllableEntity for the player
    147 
    148142        }
    149143       
     
    198192                newTower->addTemplate(this->center_->getTowerTemplate());
    199193
    200                 //this->center_->attach(newTower);
    201 
    202                 newTower->setPosition((x-8) * tileScale, (y-8) * tileScale, 100);
     194                newTower->setPosition((x-8) * tileScale, (y-8) * tileScale, 75);
    203195                newTower->setGame(this);
    204                 //TODO: Save the Tower in a Vector. I would suggest std::vector< std::vector<Tower*> > towers_ as a protected member variable;
    205                
    206                 // TODO: create Tower mesh
    207                 // TODO: load Tower mesh
    208196        }
    209197       
     
    229217    {
    230218        SUPER(TowerDefense, tick, dt);
    231                
    232         static int test = 0;
    233         if (++test == 10)
    234         {
    235                         orxout()<< "10th tick." <<endl;
    236                         /*
    237                         for (std::set<SpawnPoint*>::iterator it = this->spawnpoints_.begin(); it != this->spawnpoints_.end(); it++)
    238                         {
    239                                 orxout() << "checking spawnpoint with name " << (*it)->getSpawnClass()->getName() << endl;
    240                         }
    241                         */
    242                        
    243                         //addWaypointsAndFirstEnemy();
    244                        
    245         }
    246219    }
    247220       
     
    249222       
    250223        // THE PROBLEM: WaypointController's getControllableEntity() returns null, so it won't track. How do we get the controlableEntity to NOT BE NULL???
    251        
     224        /*
    252225        void TowerDefense::addWaypointsAndFirstEnemy()
    253226        {
     
    283256//              this->center_->attach(newShip);
    284257        }
    285        
     258        */
    286259        /*
    287260         void TowerDefense::playerEntered(PlayerInfo* player)
  • code/branches/presentation2012/src/modules/towerdefense/TowerDefense.h

    r9229 r9245  
    7878
    7979        private:
    80 //              WeakPtr<TowerDefenseCenterpoint> center_;
    8180                TowerDefenseCenterpoint *center_;
    8281               
     
    9291                } Coordinate;
    9392               
    94        
    95                
    9693                std::vector<Coordinate> addedTowersCoordinates_;
    9794                std::vector<Tower*> towers_;
    98                
    99                 void addWaypointsAndFirstEnemy();
    10095    };
    10196}
  • code/branches/presentation2012/src/modules/towerdefense/TowerDefensePlayerStats.h

    r9229 r9245  
    4343{
    4444        typedef enum _TowerCosts {
    45                 TDDefaultTowerCost = 200
     45                // Set to 0 for debug...
     46                TDDefaultTowerCost = 0
    4647        } TowerCost;
    4748       
Note: See TracChangeset for help on using the changeset viewer.