void InputConfiguration::registerButton(const String& name, ButtonCode buttonCode, ButtonModifier modifiers, bool repeatable) { Vector<VirtualButtonData>& btnData = mButtons[buttonCode & 0x0000FFFF]; INT32 idx = -1; for(UINT32 i = 0; i < (UINT32)btnData.size(); i++) { if (btnData[i].name == name) { idx = (INT32)i; break; } } if(idx == -1) { idx = (INT32)btnData.size(); btnData.push_back(VirtualButtonData()); } VirtualButtonData& btn = btnData[idx]; btn.name = name; btn.desc = VIRTUAL_BUTTON_DESC(buttonCode, modifiers, repeatable); btn.button = VirtualButton(name); }
CameraFlyer::CameraFlyer(const HSceneObject& parent) :Component(parent), mPitch(0.0f), mYaw(0.0f), mLastButtonState(false) { setName("CameraFlyer"); mCamera = sceneObject()->getComponent<CCamera>(); mCamera->setNearClipDistance(5); mMoveForward = VirtualButton("Forward"); mMoveBack = VirtualButton("Back"); mMoveLeft = VirtualButton("Left"); mMoveRight = VirtualButton("Right"); mFastMove = VirtualButton("FastMove"); mRotateCam = VirtualButton("RotateCam"); mHorizontalAxis = VirtualAxis("Horizontal"); mVerticalAxis = VirtualAxis("Vertical"); }
CameraFlyer::CameraFlyer(const HSceneObject& parent) :Component(parent), mPitch(0.0f), mYaw(0.0f), mLastButtonState(false) { // Set a name for the component, so we can find it later if needed setName("CameraFlyer"); // Find the camera component we're influencing (must be on the same SceneObject we're on) mCamera = sceneObject()->getComponent<CCamera>(); mCamera->setNearClipDistance(5); // Get handles for key bindings. Actual keys attached to these bindings will be registered during app start-up. mMoveForward = VirtualButton("Forward"); mMoveBack = VirtualButton("Back"); mMoveLeft = VirtualButton("Left"); mMoveRight = VirtualButton("Right"); mFastMove = VirtualButton("FastMove"); mRotateCam = VirtualButton("RotateCam"); mHorizontalAxis = VirtualAxis("Horizontal"); mVerticalAxis = VirtualAxis("Vertical"); }