Sion Tower (demo técnica) 0.1
|
00001 /* 00002 * This file is part of SionTower. 00003 * 00004 * 00005 * David Saltares Marquez (C) 2011 00006 * <david.saltares@gmail.com> 00007 * 00008 * 00009 * SionTower examples are free software: you can redistribute it and/or 00010 * modify it under the terms of the GNU General Public License ad 00011 * published by the Free Software Foundation, either version 3 of the 00012 * License, or (at your option) ant later version. 00013 * 00014 * SionTower examples are distributed in the hope that it will be useful, 00015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00017 * GNU General Public License for more details. 00018 * 00019 * You should have received a copy of the GNU General Public License 00020 * along with SionTower examples. If not, see <http://www.gnu.org/licenses/>. 00021 */ 00022 00023 00024 #ifndef SIONTOWER_TRUNK_SRC_INCLUDE_STATEGAME_H_ 00025 #define SIONTOWER_TRUNK_SRC_INCLUDE_STATEGAME_H_ 00026 00027 #include <OGRE/Ogre.h> 00028 #include <OIS/OIS.h> 00029 00030 #include "state.h" 00031 #include "song.h" 00032 #include "soundFX.h" 00033 #include "sound3D.h" 00034 00035 #include "body.h" 00036 #include "shape.h" 00037 #include "player.h" 00038 00039 class StateManager; 00040 class Level; 00041 00043 00051 class StateGame: public State{ 00052 public: 00062 StateGame(StateManager* stateManager); 00063 00070 ~StateGame(); 00071 00075 void load(); 00076 00080 void clear(); 00081 00090 void update(Ogre::Real deltaT, bool active); 00091 00092 00099 bool keyPressed(const OIS::KeyEvent &arg); 00100 00107 bool keyReleased(const OIS::KeyEvent &arg); 00108 00115 bool mouseMoved(const OIS::MouseEvent &arg); 00116 00123 bool mousePressed(const OIS::MouseEvent &arg, OIS::MouseButtonID id); 00124 00131 bool mouseReleased(const OIS::MouseEvent &arg, OIS::MouseButtonID id); 00132 00133 void beginCollisionCharacterWall(Body* bodyA, Body* bodyB); 00134 void inCollisionCharacterWall(Body* bodyA, Body* bodyB); 00135 void endCollisionCharacterWall(Body* bodyA, Body* bodyB); 00136 private: 00137 00138 Ogre::Camera* _camera; 00139 OIS::Keyboard* _keyboard; 00140 00141 SongPtr _song; 00142 Player* _player; 00143 00144 Level* _level; 00145 00146 void updateCamera(Ogre::Real deltaT); 00147 }; 00148 00149 00150 #endif // SIONTOWER_TRUNK_SRC_INCLUDE_STATEGAME_H_