Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Dec 9, 2010, 12:45:33 PM (14 years ago)
Author:
dafrick
Message:

Boost now runs out (and reloads).
Also fixed a few typos.

Location:
code/branches/presentation/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • code/branches/presentation/src/modules/overlays/hud/HUDBar.cc

    r7401 r7751  
    8585        this->bar_->setMaterialName(materialname);
    8686
    87         this->value_ = 1.0f;  // initielize with 1.0f to trigger a change when calling setValue(0.0f) on the line below
     87        this->value_ = 1.0f;  // initialize with 1.0f to trigger a change when calling setValue(0.0f) on the line below
    8888        this->setAutoColour(true);
    8989        this->setValue(0.0f); // <--
     
    161161        if (this->right2Left_)
    162162        {
    163             // backward casew
     163            // backward case
    164164            this->bar_->setPosition(0.06f + 0.88f * (1 - this->value_), 0.0f);
    165165            this->bar_->setDimensions(0.88f * this->value_, 1.0f);
  • code/branches/presentation/src/orxonox/LevelManager.cc

    r7724 r7751  
    152152        Ogre::StringVectorPtr levels = Resource::findResourceNames("*.oxw");
    153153        // Iterate over all *.oxw level files.
     154        COUT(3) << "Loading LevelInfos..." << std::endl;
    154155        for (Ogre::StringVector::const_iterator it = levels->begin(); it != levels->end(); ++it)
    155156        {
  • code/branches/presentation/src/orxonox/worldentities/pawns/SpaceShip.cc

    r7547 r7751  
    5757        this->engine_ = 0;
    5858
     59        this->boostPower_ = 10.0f;
     60        this->initialBoostPower_ = 10.0f;
     61        this->boostRate_ = 5.0;
     62        this->boostPowerRate_ = 1.0;
     63        this->boostCooldownDuration_ = 5.0;
     64        this->bBoostCooldown_ = false;
    5965
    6066        this->bInvertYAxis_ = false;
     
    8692        XMLPortParamVariable(SpaceShip, "auxilaryThrust", auxilaryThrust_, xmlelement, mode);
    8793        XMLPortParamVariable(SpaceShip, "rotationThrust", rotationThrust_, xmlelement, mode);
     94        XMLPortParamVariable(SpaceShip, "boostPower", initialBoostPower_, xmlelement, mode);
     95        XMLPortParamVariable(SpaceShip, "boostPowerRate", boostPowerRate_, xmlelement, mode);
     96        XMLPortParamVariable(SpaceShip, "boostRate", boostRate_, xmlelement, mode);
     97        XMLPortParamVariable(SpaceShip, "boostCooldownDuration", boostCooldownDuration_, xmlelement, mode);
    8898    }
    8999
     
    134144                this->localAngularAcceleration_.setValue(0, 0, 0);
    135145            }
    136         }
     146           
     147            if(!this->bBoostCooldown_ && this->boostPower_ < this->initialBoostPower_)
     148            {
     149                this->boostPower_ += this->boostPowerRate_*dt;
     150            }
     151            if(this->bBoost_)
     152            {
     153                this->boostPower_ -=this->boostRate_*dt;
     154                if(this->boostPower_ <= 0.0f)
     155                {
     156                    this->bBoost_ = false;
     157                    this->bBoostCooldown_ = true;
     158                    this->timer_.setTimer(this->boostCooldownDuration_, false, createExecutor(createFunctor(&SpaceShip::boostCooledDown, this)));
     159                }
     160            }
     161        }
     162    }
     163   
     164    void SpaceShip::boostCooledDown(void)
     165    {
     166        this->bBoostCooldown_ = false;
    137167    }
    138168
     
    175205        Pawn::rotateRoll(value);
    176206    }
     207   
     208    // TODO: something seems to call this function every tick, could probably handled a little more efficiently!
     209    void SpaceShip::setBoost(bool bBoost)
     210    {
     211        if(bBoost == this->bBoost_)
     212            return;
     213   
     214        if(bBoost)
     215            this->boost();
     216        else
     217        {
     218            this->bBoost_ = false;
     219        }
     220    }
    177221
    178222    void SpaceShip::fire()
     
    182226    void SpaceShip::boost()
    183227    {
    184         this->bBoost_ = true;
     228        if(!this->bBoostCooldown_)
     229            this->bBoost_ = true;
    185230    }
    186231
  • code/branches/presentation/src/orxonox/worldentities/pawns/SpaceShip.h

    r7547 r7751  
    3434#include <string>
    3535#include <LinearMath/btVector3.h>
     36#include "tools/Timer.h"
    3637#include "util/Math.h"
    3738#include "Pawn.h"
     
    6970                { return this->steering_; }
    7071
    71             inline void setBoost(bool bBoost)
    72                 { this->bBoost_ = bBoost; }
     72            void setBoost(bool bBoost);
    7373            inline bool getBoost() const
    7474                { return this->bBoost_; }
     
    8989
    9090            bool bBoost_;
     91            bool bBoostCooldown_;
    9192            bool bPermanentBoost_;
     93            float boostPower_;
     94            float initialBoostPower_;
     95            float boostRate_;
     96            float boostPowerRate_;
     97            float boostCooldownDuration_;
    9298            Vector3 steering_;
    9399            float primaryThrust_;
     
    102108
    103109            void loadEngineTemplate();
     110           
     111            void boostCooledDown(void);
    104112
    105113            std::string enginetemplate_;
    106114            Engine* engine_;
     115            Timer timer_;
    107116    };
    108117}
Note: See TracChangeset for help on using the changeset viewer.