Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Dec 3, 2017, 6:02:22 PM (6 years ago)
Author:
vyang
Message:

spawnEnemy und Templates für die 3 Grössen der Asteroiden geschrieben.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2D.cc

    r11616 r11617  
    2626 *
    2727 */
     28
     29/*TODO: Punktesystem aufbauen -> in HUD anzeigen
     30        Schwierigkeitsgrad mit jedem levelup erhöhen -> mehr Steine spawnen?
     31        spawnStone Methode schreiben
     32        templates für die drei Grössen von Asteroiden erstellen
    2833
    2934/**
     
    5762        this->center_ = nullptr;
    5863        this->setHUDTemplate("Asteroids2DHUD");
     64        levelupTimer.setTimer(100.0f, true, createExecutor(createFunctor(&Asteroids2D::levelUp, this)));
    5965    }
    6066
     
    8288        toggleShowLevel();
    8389        showLevelTimer.setTimer(1.0f, false, createExecutor(createFunctor(&Asteroids2D::toggleShowLevel, this)));
     90        //Nach jedem Level Up werden mehr Steine gespawnt -> abhängig vom Schwierigkeitsgrad
     91        for(int i = 0; i < level*2; i++){
     92            spawnStone();
     93        }
     94
    8495    }
    8596
    8697    void Asteroids2D::tick(float dt)
    8798    {
    88         //Do this only for the first tick, generate stones
     99        //Do this only for the first tick, generate 5 stones for the beginning
    89100        if(this->firstTick_)
    90101        {
     
    105116        Asteroids2DStone* newStone = new Asteroids2DStone(this->center_->getContext());
    106117        newStone->setAsteroids2DPlayer(player);
    107         //addtemplate
     118
     119        switch(newStone->getSize()){
     120            case 1:
     121                newStone->addTemplate("stone1");
     122                break;
     123            case 2:
     124                newStone->addTemplate("stone2");
     125                break;
     126            case 3:
     127                newStone->addTemplate("stone3");
     128                break;
     129            default:
     130                orxout(internal_error) << "Asteroids2DStone has invalid size and cannot be created" << endl;
     131                break;
     132
     133        }
     134
    108135
    109136    }
     
    123150    void Asteroids2D::costLife()
    124151    {
    125         //endGameTimer.setTimer(8.0f, false, createExecutor(createFunctor(&Asteroids2D::end, this)));
    126         lives = 0;
     152        --lives;
     153        if(live <= 0){
     154            endGameTimer.setTimer(8.0f, false, createExecutor(createFunctor(&Asteroids2D::end, this)));           
     155        }
    127156    };
     157   
    128158
    129159    void Asteroids2D::start()
     
    152182    }
    153183
     184    //wird gerufen, falls man einen Asteroiden trifft->Aufruf durch Schiffklasse
    154185    void Asteroids2D::addPoints(int numPoints)
    155186    {
Note: See TracChangeset for help on using the changeset viewer.