Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 17, 2018, 4:14:35 PM (6 years ago)
Author:
dreherm
Message:

HUD erweitert

Location:
code/branches/3DPacman_FS18/src/modules/pacman
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • code/branches/3DPacman_FS18/src/modules/pacman/Pacman.cc

    r11958 r11976  
    4545
    4646       // firstGame = true;                   //needed for the HUD
    47         lives = 3;
     47        lives = 0;
    4848        point = 0;
    4949        level = 1;
     
    7777        SUPER(Pacman, tick, dt);
    7878
    79         //orxout() << timer << endl;
    80         //orxout() << afraid << endl;
    81         //orxout() << totallevelpoint << endl;
    82 
     79        if(deathtime != 0){
     80            dead(dt);
     81        }
     82
     83        else{
    8384
    8485        if(afraid){
    85             timer = timer - dt;
     86        timer = timer - dt;
    8687            if(timer<=0){
    8788                setNormal();
    8889            }
    8990        }
     91
    9092
    9193        int i = 0;
     
    109111
    110112        if(bcolli){
    111           this->catched();
     113          this->catched(dt);
    112114        }
    113115
     
    125127        }
    126128
     129        }
     130
     131
     132       
     133
    127134    }
    128135
     
    134141    }
    135142
    136     void Pacman::catched(){
     143    void Pacman::catched(float dt){
    137144
    138145    if(!afraid) {
    139         if(!lives) this->end();
     146        if(!lives){
     147          deathtime = 5;
     148          this->dead(dt); 
     149        }
    140150        --lives;
    141151        this->posreset();
     
    225235    }
    226236
     237    bool Pacman::isdead(){
     238        return death;
     239    }
     240
     241    void Pacman::dead(float dt){
     242        death = true;
     243
     244        deathtime = deathtime-dt;
     245
     246        if(deathtime<0)
     247            this->end();
     248    }
    227249
    228250    void Pacman::end()
  • code/branches/3DPacman_FS18/src/modules/pacman/Pacman.h

    r11956 r11976  
    7575            void levelUp();
    7676            bool collis(Vector3 one, Vector3 other);
    77             void catched();
     77            void catched(float dt);
    7878            void posreset();
    7979            void takePoint(PacmanPointSphere* taken);
     
    8282            void setAfraid();
    8383            void setNormal();
     84            bool isdead();
     85            void dead(float dt);
    8486
    8587
     
    100102            //bool firstGame;
    101103            bool afraid = false;
     104            bool death = false;
     105            float deathtime = 0;
    102106           
    103107       private:
  • code/branches/3DPacman_FS18/src/modules/pacman/PacmanGhost.cc

    r11959 r11976  
    439439
    440440    void PacmanGhost::move(float dt, Vector3 actuelposition, Vector3 velocity){
    441         if(!dontmove)
     441        if(!dontmove){
    442442            this->setPosition(Vector3(actuelposition.x+20*velocity.x*dt,10,actuelposition.z+20*velocity.z*dt));
     443           
     444
     445            if(abs(velocity.x) == 2){
     446                this->setOrientation(Quaternion(Radian(0), Vector3(0, 1, 0)));
     447            }
     448            else if(velocity.z == 2){
     449                this->setOrientation(Quaternion(Radian(0), Vector3(0, 1, 0)));
     450            }
     451            else if(velocity.z == -2){
     452                this->setOrientation(Quaternion(Radian(180), Vector3(0, 1, 0)));
     453            }
     454            else{}
     455
     456     }
    443457    }
    444458
  • code/branches/3DPacman_FS18/src/modules/pacman/PacmanHUDinfo.cc

    r11961 r11976  
    6868        if (this->PacmanGame)
    6969        {
    70                 if(this->bShowPoints_){
     70            bool death = this->PacmanGame->isdead();
     71            if(death){
     72                bShowPoints_ = false;
     73                bShowGhoststatus_ = false;
     74                const std::string& deathmessage = "Game Over";
     75                    setTextSize(0.4);
     76                    this->setCaption(deathmessage);
     77            }
     78           
     79            if(this->bShowPoints_ && !death) {
    7180                    const std::string& points = "Collected points: "+multi_cast<std::string>(this->PacmanGame->getPoints()) + " of " + multi_cast<std::string>(this->PacmanGame->totallevelpoint);
    7281                    setTextSize(0.04);
    7382                    this->setCaption(points);
    74                 }
    75                 if(this->bShowGhoststatus_){
     83            }
     84 
     85            if(this->bShowGhoststatus_ && !death){
    7686                    const std::string& ghoststatus = "Do not get caught!";
    77                     //if(this->PacmanGame->afraid) const std::string& ghoststatus = "Catch the ghosts!";
    78                     orxout() << "Test Hier" << endl;
     87                    if(this->PacmanGame->afraid) const std::string& ghoststatus = "Catch the ghosts!";
    7988                    setTextSize(0.04);
    8089                    this->setCaption(ghoststatus);
    81                 }
     90            }
    8291        }
    8392    }   
  • code/branches/3DPacman_FS18/src/modules/pacman/PacmanHUDinfo.h

    r11961 r11976  
    6363                { return messageID; }
    6464
    65             inline void setGhoststatus(int value){
     65            inline void setGhoststatus(bool value){
    6666                this->bShowGhoststatus_ = value;
    6767            }
  • code/branches/3DPacman_FS18/src/modules/pacman/PacmanPointAfraid.cc

    r11956 r11976  
    7575    {
    7676        resetposition = this->getPosition();
    77       if((abs(resetposition.x - playerpos.x)<1) && (abs(resetposition.z - playerpos.z)<1)){
     77      if((abs(resetposition.x - playerpos.x)<5) && (abs(resetposition.z - playerpos.z)<5)){
    7878        this->setPosition(Vector3(resetposition.x, -50, resetposition.z));
    7979        return true;
Note: See TracChangeset for help on using the changeset viewer.