Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 2, 2011, 2:18:04 PM (14 years ago)
Author:
dboehi
Message:

Changed the camera shake effect to work with the updated boost code.

Location:
code/branches/gameimmersion
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • code/branches/gameimmersion

  • code/branches/gameimmersion/src/orxonox/worldentities/ControllableEntity.cc

    r7892 r8379  
    8484        this->client_angular_velocity_ = Vector3::ZERO;
    8585
    86 
    8786        this->setConfigValues();
    8887        this->setPriority( Priority::VeryHigh );
  • code/branches/gameimmersion/src/orxonox/worldentities/ControllableEntity.h

    r7889 r8379  
    9393            virtual void reload() {}
    9494
    95             virtual void boost() {}
     95            /**
     96            @brief Tells the ControllableEntity to either start or stop boosting.
     97                   This doesn't mean, that the ControllableEntity will do so, there might be additional restrictions on boosting, but if it can, then it will.
     98            @param bBoost If true the ControllableEntity is told to start boosting, if false it is told to stop.
     99            */
     100            virtual void boost(bool bBoost) {}
     101           
    96102            virtual void greet() {}
    97103            virtual void switchCamera();
  • code/branches/gameimmersion/src/orxonox/worldentities/pawns/SpaceShip.cc

    r8254 r8379  
    5555        this->localAngularAcceleration_.setValue(0, 0, 0);
    5656        this->bBoost_ = false;
    57         this->bPermanentBoost_ = false;
    5857        this->steering_ = Vector3::ZERO;
    5958        this->engine_ = 0;
     
    8382        this->cameraOriginalOrientation = c->getOrientation();
    8483
    85         this->shakeFrequency_ = 20;
     84        this->shakeFrequency_ = 50;
    8685        this->shakeAmplitude_ = 40;
    8786        this->shakeDt_ = 0;
     
    114113        registerVariable(this->auxilaryThrust_, VariableDirection::ToClient);
    115114        registerVariable(this->rotationThrust_, VariableDirection::ToClient);
     115        registerVariable(this->boostPower_, VariableDirection::ToClient);
     116        registerVariable(this->boostPowerRate_, VariableDirection::ToClient);
     117        registerVariable(this->boostRate_, VariableDirection::ToClient);
     118        registerVariable(this->boostCooldownDuration_, VariableDirection::ToClient);
    116119    }
    117120
     
    163166
    164167
    165         Camera* c = this->getCamera();
     168
    166169            if(this->bBoost_)
    167170            {
     
    177180                {
    178181                        this->shakeDt_ += dt;
     182                       
     183                        Camera* c = this->getCamera();
    179184
    180185                        //Shaking Camera effect
     
    201206                }
    202207            }
    203             else
    204             {
    205                     //reset the camera, if the boost is not active
    206                     //TODO: don't call this every tick
    207                     this->resetCamera();
    208             }
    209208        }
    210209    }
     
    254253    }
    255254
    256     // TODO: something seems to call this function every tick, could probably handled a little more efficiently!
    257     void SpaceShip::setBoost(bool bBoost)
    258     {
    259         if(bBoost == this->bBoost_)
    260             return;
    261 
    262         if(bBoost)
    263             this->boost();
    264         else
    265         {
     255    void SpaceShip::fire()
     256    {
     257    }
     258
     259    /**
     260    @brief
     261        Starts or stops boosting.
     262    @param bBoost
     263        Whether to start or stop boosting.
     264    */
     265    void SpaceShip::boost(bool bBoost)
     266    {
     267        Camera* c = this->getCamera();
     268       
     269        if(bBoost && !this->bBoostCooldown_)
     270            this->bBoost_ = true;
     271        if(!bBoost)
     272        {
    266273            this->bBoost_ = false;
    267         }
    268     }
    269 
    270     void SpaceShip::fire()
    271     {
    272     }
    273 
    274     void SpaceShip::boost()
    275     {
    276         if(!this->bBoostCooldown_)
    277             this->bBoost_ = true;
     274            this->resetCamera();
     275        }
    278276    }
    279277
     
    326324           
    327325            assert(c != 0);
     326         
     327            if (c == 0)
     328            {
     329                    COUT(2) << "Failed to reset camera!";
     330                    return;
     331            }
     332           
     333            shakeDt_ = 0;
    328334           
    329335            c->setAngularVelocity(Vector3(0,0,0));
  • code/branches/gameimmersion/src/orxonox/worldentities/pawns/SpaceShip.h

    r8254 r8379  
    5959
    6060            virtual void fire();
    61             virtual void boost();
     61            virtual void boost(bool bBoost); // Starts or stops boosting.
    6262
    6363            void setEngine(Engine* engine);
     
    7070                { return this->steering_; }
    7171
    72             void setBoost(bool bBoost);
    7372            inline bool getBoost() const
    7473                { return this->bBoost_; }
     
    7978                { return this->enginetemplate_; }
    8079
    81             inline void setPermanentBoost(bool bPermanent)
    82                 { this->bPermanentBoost_ = bPermanent; }
    83             inline bool getPermanentBoost() const
    84                 { return this->bPermanentBoost_; }
    85 
    8680        protected:
    8781            virtual std::vector<PickupCarrier*>* getCarrierChildren(void) const;
     
    9084            bool bBoost_;
    9185            bool bBoostCooldown_;
    92             bool bPermanentBoost_;
    9386            float boostPower_;
    9487            float initialBoostPower_;
Note: See TracChangeset for help on using the changeset viewer.