Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Oct 28, 2008, 3:05:17 AM (16 years ago)
Author:
landauf
Message:

added spaceship

Location:
code/branches/objecthierarchy/src/orxonox/objects/worldentities/pawns
Files:
4 added
2 edited

Legend:

Unmodified
Added
Removed
  • code/branches/objecthierarchy/src/orxonox/objects/worldentities/pawns/Spectator.cc

    r2019 r2024  
    3535#include "objects/Scene.h"
    3636#include "objects/infos/PlayerInfo.h"
     37#include "objects/gametypes/Gametype.h"
    3738#include "tools/BillboardSet.h"
     39#include "overlays/OverlayText.h"
     40#include "overlays/OverlayGroup.h"
     41#include "util/Convert.h"
    3842
    3943namespace orxonox
     
    5458
    5559        this->setDestroyWhenPlayerLeft(true);
    56 
    57         // test test test
    58         if (this->getScene()->getSceneManager())
    59         {
    60             this->testmesh_ = new Mesh();
    61             this->testnode_ = this->getNode()->createChildSceneNode();
    62             this->testmesh_->setMeshSource(this->getScene()->getSceneManager(), "assff.mesh");
    63             if (this->testmesh_->getEntity())
    64                 this->testnode_->attachObject(this->testmesh_->getEntity());
    65             this->testnode_->pitch(Degree(-90));
    66             this->testnode_->roll(Degree(+90));
    67             this->testnode_->scale(10, 10, 10);
    68         }
    69         else
    70         {
    71             this->testmesh_ = 0;
    72             this->testnode_ = 0;
    73         }
    74         // test test test
    7560
    7661        this->greetingFlare_ = new BillboardSet();
     
    9378                delete this->greetingFlare_;
    9479            }
    95 
    96             // test test test
    97             {
    98                 if (this->testmesh_ && this->testnode_)
    99                     this->testnode_->detachObject(this->testmesh_->getEntity());
    100 
    101                 if (this->testmesh_)
    102                     delete this->testmesh_;
    103 
    104                 if (this->testnode_)
    105                     this->getNode()->removeAndDestroyChild(this->testnode_->getName());
    106             }
    107             // test test test
    10880        }
    10981    }
     
    130102        if (this->isLocallyControlled())
    131103        {
     104            this->updateHUD();
     105
    132106            Vector3 velocity = this->getVelocity();
    133107            velocity.normalise();
     
    159133    {
    160134        ControllableEntity::startLocalControl();
    161         if (this->isLocallyControlled())
    162             this->testmesh_->setVisible(false);
    163     }
    164 
    165     void Spectator::moveFrontBack(float value)
    166     {
    167         this->setVelocity(this->getVelocity() + value * this->speed_ * WorldEntity::FRONT);
    168     }
    169 
    170     void Spectator::moveRightLeft(float value)
    171     {
    172         this->setVelocity(this->getVelocity() + value * this->speed_ * WorldEntity::RIGHT);
    173     }
    174 
    175     void Spectator::moveUpDown(float value)
    176     {
    177         this->setVelocity(this->getVelocity() + value * this->speed_ * WorldEntity::UP);
    178     }
    179 
    180     void Spectator::rotateYaw(float value)
    181     {
    182         this->yaw_ = value;
    183     }
    184 
    185     void Spectator::rotatePitch(float value)
    186     {
    187         this->pitch_ = value;
    188     }
    189 
    190     void Spectator::rotateRoll(float value)
    191     {
    192         this->roll_ = value;
     135//        if (this->isLocallyControlled())
     136//            this->testmesh_->setVisible(false);
     137    }
     138
     139    void Spectator::moveFrontBack(const Vector2& value)
     140    {
     141        this->setVelocity(this->getVelocity() + value.y * this->speed_ * WorldEntity::FRONT);
     142    }
     143
     144    void Spectator::moveRightLeft(const Vector2& value)
     145    {
     146        this->setVelocity(this->getVelocity() + value.y * this->speed_ * WorldEntity::RIGHT);
     147    }
     148
     149    void Spectator::moveUpDown(const Vector2& value)
     150    {
     151        this->setVelocity(this->getVelocity() + value.y * this->speed_ * WorldEntity::UP);
     152    }
     153
     154    void Spectator::rotateYaw(const Vector2& value)
     155    {
     156        this->yaw_ = value.y;
     157    }
     158
     159    void Spectator::rotatePitch(const Vector2& value)
     160    {
     161        this->pitch_ = value.y;
     162    }
     163
     164    void Spectator::rotateRoll(const Vector2& value)
     165    {
     166        this->roll_ = value.y;
    193167    }
    194168
     
    209183        }
    210184    }
     185
     186    void Spectator::updateHUD()
     187    {
     188        // <hack>
     189        if (this->getHUD())
     190        {
     191            std::string text;
     192
     193            if (this->getPlayer() && this->getGametype())
     194            {
     195                if (!this->getGametype()->hasStarted() && !this->getGametype()->isStartCountdownRunning())
     196                {
     197                    if (!this->getPlayer()->isReadyToSpawn())
     198                        text = "Press [Fire] to start the match";
     199                    else
     200                        text = "Waiting for other players";
     201                }
     202                else if (!this->getGametype()->hasEnded())
     203                {
     204                    if (this->getGametype()->isStartCountdownRunning())
     205                    {
     206                        text = convertToString(ceil(this->getGametype()->getStartCountdown()));
     207                    }
     208                    else
     209                    {
     210                        text = "Press [Fire] to respawn";
     211                    }
     212                }
     213                else
     214                {
     215                    text = "Game has ended";
     216                }
     217            }
     218            else
     219            {
     220                return;
     221            }
     222
     223            std::map<std::string, OrxonoxOverlay*>::const_iterator it = this->getHUD()->getOverlays().begin();
     224            for (; it != this->getHUD()->getOverlays().end(); ++it)
     225            {
     226                if (it->second->isA(Class(OverlayText)) && it->second->getName() == "state")
     227                {
     228                    OverlayText* overlay = dynamic_cast<OverlayText*>(it->second);
     229                    if (overlay)
     230                        overlay->setCaption(text);
     231                    break;
     232                }
     233            }
     234        }
     235        // </hack>
     236    }
    211237}
  • code/branches/objecthierarchy/src/orxonox/objects/worldentities/pawns/Spectator.h

    r2019 r2024  
    4848            virtual void startLocalControl();
    4949
    50             virtual void moveFrontBack(float value);
    51             virtual void moveRightLeft(float value);
    52             virtual void moveUpDown(float value);
     50            virtual void moveFrontBack(const Vector2& value);
     51            virtual void moveRightLeft(const Vector2& value);
     52            virtual void moveUpDown(const Vector2& value);
    5353
    54             virtual void rotateYaw(float value);
    55             virtual void rotatePitch(float value);
    56             virtual void rotateRoll(float value);
     54            virtual void rotateYaw(const Vector2& value);
     55            virtual void rotatePitch(const Vector2& value);
     56            virtual void rotateRoll(const Vector2& value);
    5757
    5858            virtual void fire();
     
    6262            void changedGreeting();
    6363            void changedFlareVisibility();
     64            void updateHUD();
    6465
    6566            BillboardSet* greetingFlare_;
     
    7374            float pitch_;
    7475            float roll_;
    75 
    76             // test test test
    77             Mesh* testmesh_;
    78             Ogre::SceneNode* testnode_;
    79             // test test test
    8076    };
    8177}
Note: See TracChangeset for help on using the changeset viewer.