Changeset 917 for code/branches/network/src/orxonox/tools
- Timestamp:
- Mar 21, 2008, 6:14:31 PM (17 years ago)
- Location:
- code/branches/network/src/orxonox/tools
- Files:
-
- 2 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
code/branches/network/src/orxonox/tools/OrxListener.cc
r916 r917 31 31 #include "objects/NPC.h" 32 32 #include "audio/AudioManager.h" 33 #include "Orxonox.h" 33 34 #include "OrxListener.h" 34 35 35 36 namespace orxonox 36 37 { 37 OrxListener::OrxListener( audio::AudioManager* auMan, gameMode mode)38 OrxListener::OrxListener(OIS::Keyboard *keyboard, audio::AudioManager* auMan, gameMode mode) 38 39 { 40 keyboard_ = keyboard; 39 41 mode_=mode; 40 42 auMan_ = auMan; … … 45 47 auMan_->update(); 46 48 updateAI(); 49 50 keyboard_->capture(); 51 if (keyboard_->isKeyDown(OIS::KC_ESCAPE)) 52 Orxonox::getSingleton()->abortRequest(); 47 53 } 48 54 -
code/branches/network/src/orxonox/tools/OrxListener.h
r916 r917 34 34 #define _OrxListener_H__ 35 35 36 #include <OIS/OISPrereqs.h> 37 36 38 #include "../OrxonoxPrereqs.h" 37 39 #include "audio/AudioPrereqs.h" 38 40 #include "Orxonox.h" 39 #include " objects/Tickable.h"41 #include "core/Tickable.h" 40 42 41 43 namespace orxonox … … 44 46 { 45 47 public: 46 OrxListener( audio::AudioManager* auMan, gameMode mode);48 OrxListener(OIS::Keyboard *keyboard, audio::AudioManager* auMan, gameMode mode); 47 49 48 50 void tick(float dt); … … 52 54 gameMode mode_; 53 55 audio::AudioManager* auMan_; 56 OIS::Keyboard *keyboard_; 54 57 }; 55 58 } -
code/branches/network/src/orxonox/tools/Timer.cc
r871 r917 1 /* 2 * ORXONOX - the hottest 3D action shooter ever to exist 3 * 4 * 5 * License notice: 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License 9 * as published by the Free Software Foundation; either version 2 10 * of the License, or (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 * 21 * Author: 22 * Fabian 'x3n' Landau 23 * Co-authors: 24 * ... 25 * 26 */ 27 28 #include "OrxonoxStableHeaders.h" 29 1 30 #include "core/CoreIncludes.h" 2 31 #include "Timer.h" … … 17 46 this->time_ = 0; 18 47 } 48 49 /** 50 @brief Updates the timer before the frames are rendered. 51 */ 52 void TimerBase::tick(float dt) 53 { 54 if (this->bActive_) 55 { 56 // If active: Decrease the timer by the duration of the last frame 57 this->time_ -= dt; 58 59 if (this->time_ <= 0) 60 { 61 // It's time to call the function 62 if (this->bLoop_) 63 // Q: Why '+=' and not '='? A: Think about it. It's more accurate like that. Seriously. 64 this->time_ += this->interval_; 65 else 66 this->stopTimer(); // Stop the timer if we don't want to loop 67 68 this->run(); 69 } 70 } 71 } 72 19 73 } -
code/branches/network/src/orxonox/tools/Timer.h
r871 r917 58 58 #define _Timer_H__ 59 59 60 #include <OgreFrameListener.h>61 60 #include "../OrxonoxPrereqs.h" 61 #include "core/Tickable.h" 62 62 63 63 namespace orxonox 64 64 { 65 65 //! TimerBase is the parent of the Timer class. 66 class _OrxonoxExport TimerBase : public OrxonoxClass66 class _OrxonoxExport TimerBase : public Tickable 67 67 { 68 friend class TimerFrameListener;69 70 68 public: 71 69 TimerBase(); … … 83 81 /** @brief Returns true if the Timer is active (= not stoped, not paused). @return True = Time is active */ 84 82 inline bool isActive() const { return this->bActive_; } 83 84 void tick(float dt); 85 85 86 86 protected: … … 145 145 }; 146 146 147 //! The TimerFrameListener manages all Timers in the game.148 class TimerFrameListener : public Ogre::FrameListener149 {150 private:151 /** @brief Gets called before a frame gets rendered. */152 bool frameStarted(const Ogre::FrameEvent &evt)153 {154 // Iterate through all Timers155 for (Iterator<TimerBase> it = ObjectList<TimerBase>::start(); it; )156 {157 if (it->isActive())158 {159 // If active: Decrease the timer by the duration of the last frame160 it->time_ -= evt.timeSinceLastFrame;161 162 if (it->time_ <= 0)163 {164 // It's time to call the function165 if (it->bLoop_)166 it->time_ += it->interval_; // Q: Why '+=' and not '='? A: Think about it. It's more accurate like that. Seriously.167 else168 it->stopTimer(); // Stop the timer if we don't want to loop169 170 (it++)->run();171 }172 else173 ++it;174 }175 else176 ++it;177 }178 179 return FrameListener::frameStarted(evt);180 }181 };182 147 } 183 148
Note: See TracChangeset
for help on using the changeset viewer.