|
From: <sik...@us...> - 2006-05-19 17:27:53
|
Revision: 46 Author: sik0fewl Date: 2006-05-19 10:27:43 -0700 (Fri, 19 May 2006) ViewCVS: http://svn.sourceforge.net/perceptioncrash/?rev=46&view=rev Log Message: ----------- Added KeyboardMap class, similar to sdw's original 'Input' class Used to see which keys are currently held down on the keyboard Modified Paths: -------------- trunk/perceptioncrash/src/GameManager.cpp trunk/perceptioncrash/src/GameManager.hpp trunk/perceptioncrash/src/PlayState.cpp Added Paths: ----------- trunk/perceptioncrash/src/KeyboardMap.cpp trunk/perceptioncrash/src/KeyboardMap.hpp Modified: trunk/perceptioncrash/src/GameManager.cpp =================================================================== --- trunk/perceptioncrash/src/GameManager.cpp 2006-05-19 16:04:41 UTC (rev 45) +++ trunk/perceptioncrash/src/GameManager.cpp 2006-05-19 17:27:43 UTC (rev 46) @@ -3,6 +3,7 @@ #include "GameManager.hpp" #include "InputManager.hpp" +#include "KeyboardMap.hpp" #include "GameState.hpp" template<> GameManager* Ogre::Singleton<GameManager>::ms_Singleton = 0; @@ -11,6 +12,7 @@ { mRoot = 0; mInputManager = 0; + mKeyboardMap = 0; } GameManager::~GameManager() @@ -25,6 +27,9 @@ if (mInputManager) delete mInputManager; + if (mKeyboardMap) + delete mKeyboardMap; + if (mRoot) delete mRoot; } @@ -41,10 +46,13 @@ mRoot->addFrameListener(this); + mKeyboardMap = new KeyboardMap(); mInputManager = new InputManager(mRoot->getAutoCreatedWindow()); + mInputManager->getEventProcessor()->addKeyListener(mKeyboardMap); mInputManager->getEventProcessor()->addKeyListener(this); mInputManager->getEventProcessor()->addMouseMotionListener(this); + mDebugPanelOverlay = Ogre::OverlayManager::getSingleton().getByName("Core/DebugOverlay"); changeState(state); Modified: trunk/perceptioncrash/src/GameManager.hpp =================================================================== --- trunk/perceptioncrash/src/GameManager.hpp 2006-05-19 16:04:41 UTC (rev 45) +++ trunk/perceptioncrash/src/GameManager.hpp 2006-05-19 17:27:43 UTC (rev 46) @@ -7,6 +7,7 @@ #include <OgreSingleton.h> #include "InputManager.hpp" +#include "KeyboardMap.hpp" class GameState; @@ -31,6 +32,7 @@ Ogre::Root* mRoot; Ogre::RenderWindow* mRenderWindow; InputManager* mInputManager; + KeyboardMap* mKeyboardMap; void setupResources(void); bool configure(void); Added: trunk/perceptioncrash/src/KeyboardMap.cpp =================================================================== --- trunk/perceptioncrash/src/KeyboardMap.cpp (rev 0) +++ trunk/perceptioncrash/src/KeyboardMap.cpp 2006-05-19 17:27:43 UTC (rev 46) @@ -0,0 +1,13 @@ +#include <Ogre.h> +#include <OgreKeyEvent.h> +#include <OgreSingleton.h> + +#include "KeyboardMap.hpp" + +template<> KeyboardMap* Ogre::Singleton<KeyboardMap>::ms_Singleton = 0; + +bool +KeyboardMap::isDown(int key) +{ + return keyMap[key]; +} Property changes on: trunk/perceptioncrash/src/KeyboardMap.cpp ___________________________________________________________________ Name: svn:keywrords + Id Name: svn:eol-style + native Added: trunk/perceptioncrash/src/KeyboardMap.hpp =================================================================== --- trunk/perceptioncrash/src/KeyboardMap.hpp (rev 0) +++ trunk/perceptioncrash/src/KeyboardMap.hpp 2006-05-19 17:27:43 UTC (rev 46) @@ -0,0 +1,28 @@ +#ifndef PC_KEYBOARD_MAP +#define PC_KEYBOARD_MAP + +#include <map> + +#include <Ogre.h> +#include <OgreKeyEvent.h> +#include <OgreEventListeners.h> +#include <OgreSingleton.h> + +class KeyboardMap : public Ogre::KeyListener, + public Ogre::Singleton<KeyboardMap> +{ + public: + bool isDown(int key); + + protected: + void keyClicked(Ogre::KeyEvent* e) { } + void keyPressed(Ogre::KeyEvent* e) + { keyMap[e->getKey()] = true; } + void keyReleased(Ogre::KeyEvent* e) + { keyMap[e->getKey()] = false; } + + private: + std::map<int, bool> keyMap; +}; + +#endif /* PC_KEYBOARD_MAP */ Modified: trunk/perceptioncrash/src/PlayState.cpp =================================================================== --- trunk/perceptioncrash/src/PlayState.cpp 2006-05-19 16:04:41 UTC (rev 45) +++ trunk/perceptioncrash/src/PlayState.cpp 2006-05-19 17:27:43 UTC (rev 46) @@ -6,6 +6,8 @@ #include "IntroState.hpp" #include "PauseState.hpp" +#include <iostream> + PlayState PlayState::mPlayState; void @@ -73,6 +75,10 @@ void PlayState::keyClicked(Ogre::KeyEvent* e) { + if (e->getKey() == Ogre::KC_DOWN) + { + mCamera->setPosition(mCamera->getPosition() - Ogre::Vector3(0, 1, 0)); + } } void @@ -82,8 +88,7 @@ { pushState(PauseState::getInstance()); } - - if (e->getKey() == Ogre::KC_ESCAPE) + else if (e->getKey() == Ogre::KC_ESCAPE) { changeState(IntroState::getInstance()); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |