void GameManager::ToggleGameMode(gameMode mode) { /*if (mode == MODE_DUEL && mGameMode != MODE_DUEL) EnableDuelMode(); else if (mGameMode == MODE_DUEL && mode != MODE_DUEL) //if we're switching FROM duel DisableDuelMode(); */ mGameMode = mode; Console* c = GetChat(); if (c) { if (mode == MODE_ACTION) { c->mInput->mReadOnly = true; c->mInput->SetText("Hit TAB to toggle chat mode"); //, or ENTER for quick chat"); } else if (c->IsVisible()) //has to be visible for chat mode { c->mInput->mReadOnly = false; c->mInput->Clear(); } } // Reset our speed if (mPlayer->GetSpeed() == SPEED_RUN) mPlayer->SetSpeed(SPEED_WALK); // Send an event MessageData md("GAME_MODE"); md.WriteInt("mode", mode); messenger.Dispatch(md); }
void UI::ToggleConsole() { Console* console = GetSubsystem<Console>(); if (!console) return; console->Toggle(); consoleVisible_ = console->IsVisible(); }
void UI::ShowConsole(bool value) { Console* console = GetSubsystem<Console>(); if (!console) return; console->SetVisible(value); consoleVisible_ = console->IsVisible(); }
void TowerApp::HandleKeyDown(StringHash, VariantMap &eventData) { using namespace KeyDown; int key = eventData[P_KEY].GetInt(); // Close console (if open) or exit when ESC is pressed if (key == KEY_ESC) { Console *console = GetSubsystem<Console>(); if (console->IsVisible()) console->SetVisible(false); else engine_->Exit(); return; } if (key == '`') { GetSubsystem<Console>()->Toggle(); return; } // Toggle debug HUD with F2 if (key == KEY_F2) { DebugHud *debugHud = GetSubsystem<DebugHud>(); if (debugHud->GetMode() == 0 || debugHud->GetMode() == DEBUGHUD_SHOW_ALL_MEMORY) debugHud->SetMode(DEBUGHUD_SHOW_ALL); else debugHud->SetMode(DEBUGHUD_SHOW_NONE); return; } if (key == KEY_F3) { DebugHud *debugHud = GetSubsystem<DebugHud>(); if (debugHud->GetMode() == 0 || debugHud->GetMode() == DEBUGHUD_SHOW_ALL) debugHud->SetMode(DEBUGHUD_SHOW_ALL_MEMORY); else debugHud->SetMode(DEBUGHUD_SHOW_NONE); return; } if (key == KEY_F4) { drawDebugGeometry = !drawDebugGeometry; return; } }
void UrhoQuickStart::HandleKeyDown(StringHash eventType, VariantMap& eventData) { using namespace KeyDown; int key = eventData[P_KEY].GetInt(); if (key == KEY_ESC) { Console* console = GetSubsystem<Console>(); if (console->IsVisible()) console->SetVisible(false); else engine_->Exit(); } else if (key == KEY_F1) { Console* console = GetSubsystem<Console>(); console->Toggle(); } if (key == KEY_F2) drawDebug_ = !drawDebug_; if (key == KEY_E) { Vector3 hitPos; Drawable* hitDrawable; NavigationMesh* navMesh = scene_->GetComponent<NavigationMesh>(); if (Raycast(250.0f, hitPos, hitDrawable)) { Vector3 pathPos = navMesh->FindNearestPoint(hitPos, Vector3(2.0f, 2.0f, 2.0f)); botScript_->AddPath(botNode_->GetWorldPosition(), pathPos); } } }
//------------------------------------------------------------------------------------------------------------------------------------------------------ void BaseApplication::HandleKeyDown(StringHash eventType, VariantMap& eventData) { using namespace Urho3D::KeyDown; int key = eventData[P_KEY].GetInt(); // Close console (if open) or exit when ESC is pressed if (key == Urho3D::KEY_ESC) { Console* console = GetSubsystem<Console>(); if (console->IsVisible()) console->SetVisible(false); else engine_->Exit(); } // Toggle console with F1 else if (key == Urho3D::KEY_F1) GetSubsystem<Console>()->Toggle(); // Toggle debug HUD with F2 else if (key == Urho3D::KEY_F2) { DebugHud* debugHud = GetSubsystem<DebugHud>(); if (debugHud->GetMode() == 0 || debugHud->GetMode() == DEBUGHUD_SHOW_ALL_MEMORY) debugHud->SetMode(DEBUGHUD_SHOW_ALL); else debugHud->SetMode(DEBUGHUD_SHOW_NONE); } else if (key == KEY_F3) { DebugHud* debugHud = GetSubsystem<DebugHud>(); if (debugHud->GetMode() == 0 || debugHud->GetMode() == DEBUGHUD_SHOW_ALL) debugHud->SetMode(DEBUGHUD_SHOW_ALL_MEMORY); else debugHud->SetMode(DEBUGHUD_SHOW_NONE); } // Common rendering quality controls, only when UI has no focused element else if (!GetSubsystem<UI>()->GetFocusElement()) { Renderer* renderer = GetSubsystem<Renderer>(); // Preferences / Pause if (key == KEY_SELECT && touchEnabled_) { paused_ = !paused_; Input* input = GetSubsystem<Input>(); if (screenJoystickSettingsIndex_ == M_MAX_UNSIGNED) { // Lazy initialization ResourceCache* cache = GetSubsystem<ResourceCache>(); screenJoystickSettingsIndex_ = input->AddScreenJoystick(cache->GetResource<XMLFile>("UI/ScreenJoystickSettings_Samples.xml"), cache->GetResource<XMLFile>("UI/DefaultStyle.xml")); } else input->SetScreenJoystickVisible(screenJoystickSettingsIndex_, paused_); } // Texture quality else if (key == '1') { int quality = renderer->GetTextureQuality(); ++quality; if (quality > QUALITY_HIGH) quality = QUALITY_LOW; renderer->SetTextureQuality(quality); } // Material quality else if (key == '2') { int quality = renderer->GetMaterialQuality(); ++quality; if (quality > QUALITY_HIGH) quality = QUALITY_LOW; renderer->SetMaterialQuality(quality); } // Specular lighting else if (key == '3') renderer->SetSpecularLighting(!renderer->GetSpecularLighting()); // Shadow rendering else if (key == '4') renderer->SetDrawShadows(!renderer->GetDrawShadows()); // Shadow map resolution else if (key == '5') { int shadowMapSize = renderer->GetShadowMapSize(); shadowMapSize *= 2; if (shadowMapSize > 2048) shadowMapSize = 512; renderer->SetShadowMapSize(shadowMapSize); } // Shadow depth and filtering quality else if (key == '6') { int quality = renderer->GetShadowQuality(); ++quality; if (quality > SHADOWQUALITY_PCF_24BIT) quality = SHADOWQUALITY_SIMPLE_16BIT; renderer->SetShadowQuality((ShadowQuality)quality); } // Occlusion culling else if (key == '7') { bool occlusion = renderer->GetMaxOccluderTriangles() > 0; occlusion = !occlusion; renderer->SetMaxOccluderTriangles(occlusion ? 5000 : 0); } // Instancing else if (key == '8') renderer->SetDynamicInstancing(!renderer->GetDynamicInstancing()); // Take screenshot else if (key == '9') { Graphics* graphics = GetSubsystem<Graphics>(); Image screenshot(context_); graphics->TakeScreenShot(screenshot); // Here we save in the Data folder with date and time appended screenshot.SavePNG(GetSubsystem<FileSystem>()->GetProgramDir() + "Data/Screenshot_" + Time::GetTimeStamp().Replaced(':', '_').Replaced('.', '_').Replaced(' ', '_') + ".png"); } } }
void Sample::HandleKeyDown(StringHash eventType, VariantMap& eventData) { using namespace KeyDown; int key = eventData[P_KEY].GetInt(); // Close console (if open) or exit when ESC is pressed if (key == KEY_ESC) { Console* console = GetSubsystem<Console>(); if (console->IsVisible()) console->SetVisible(false); else GetSubsystem<Engine>()->Exit(); } // Toggle console with F1 else if (key == KEY_F1) GetSubsystem<Console>()->Toggle(); // Toggle debug HUD with F2 else if (key == KEY_F2) GetSubsystem<DebugHud>()->ToggleAll(); // Take screenshot else if (key == '9') { Graphics* graphics = GetSubsystem<Graphics>(); Image screenshot(context_); graphics->TakeScreenShot(screenshot); // Here we save in the Data folder with date and time appended screenshot.SavePNG(GetSubsystem<FileSystem>()->GetProgramDir() + "Data/Screenshot_" + Time::GetTimeStamp().Replaced(':', '_').Replaced('.', '_').Replaced(' ', '_') + ".png"); } // Common rendering quality controls, only when UI has no focused element else if (!GetSubsystem<UI>()->GetFocusElement()) { Renderer* renderer = GetSubsystem<Renderer>(); // Texture quality if (key == '1') { int quality = renderer->GetTextureQuality(); ++quality; if (quality > QUALITY_HIGH) quality = QUALITY_LOW; renderer->SetTextureQuality(quality); } // Material quality else if (key == '2') { int quality = renderer->GetMaterialQuality(); ++quality; if (quality > QUALITY_HIGH) quality = QUALITY_LOW; renderer->SetMaterialQuality(quality); } // Specular lighting else if (key == '3') renderer->SetSpecularLighting(!renderer->GetSpecularLighting()); // Shadow rendering else if (key == '4') renderer->SetDrawShadows(!renderer->GetDrawShadows()); // Shadow map resolution else if (key == '5') { int shadowMapSize = renderer->GetShadowMapSize(); shadowMapSize *= 2; if (shadowMapSize > 2048) shadowMapSize = 512; renderer->SetShadowMapSize(shadowMapSize); } // Shadow depth and filtering quality else if (key == '6') { int quality = renderer->GetShadowQuality(); ++quality; if (quality > SHADOWQUALITY_HIGH_24BIT) quality = SHADOWQUALITY_LOW_16BIT; renderer->SetShadowQuality(quality); } // Occlusion culling else if (key == '7') { bool occlusion = renderer->GetMaxOccluderTriangles() > 0; occlusion = !occlusion; renderer->SetMaxOccluderTriangles(occlusion ? 5000 : 0); } // Instancing else if (key == '8') renderer->SetDynamicInstancing(!renderer->GetDynamicInstancing()); } }
void GameApplication::HandleKeyDown(StringHash eventType, VariantMap& eventData) { using namespace KeyDown; int key = eventData[P_KEY].GetInt(); list<CHANGE_ORDER> changes; //显示与内存中上下相反 if (key == 'W') { gameData_.OnDown(changes); UpdateShow(); } if (key == 'S') { gameData_.OnUp(changes); UpdateShow(); } if (key == 'A') { gameData_.OnLeft(changes); UpdateShow(); } if (key == 'D') { gameData_.OnRight(changes); UpdateShow(); } // Close console (if open) or exit when ESC is pressed if (key == KEY_ESC) { Console* console = GetSubsystem<Console>(); if (!console->IsVisible()) engine_->Exit(); else console->SetVisible(false); } // Toggle console with F1 else if (key == KEY_F1) GetSubsystem<Console>()->Toggle(); // Toggle debug HUD with F2 else if (key == KEY_F2) GetSubsystem<DebugHud>()->ToggleAll(); // Common rendering quality controls, only when UI has no focused element else if (!GetSubsystem<UI>()->GetFocusElement()) { Renderer* renderer = GetSubsystem<Renderer>(); // Texture quality if (key == '1') { int quality = renderer->GetTextureQuality(); ++quality; if (quality > QUALITY_HIGH) quality = QUALITY_LOW; renderer->SetTextureQuality(quality); } // Material quality else if (key == '2') { int quality = renderer->GetMaterialQuality(); ++quality; if (quality > QUALITY_HIGH) quality = QUALITY_LOW; renderer->SetMaterialQuality(quality); } // Specular lighting else if (key == '3') renderer->SetSpecularLighting(!renderer->GetSpecularLighting()); // Shadow rendering else if (key == '4') renderer->SetDrawShadows(!renderer->GetDrawShadows()); // Shadow map resolution else if (key == '5') { int shadowMapSize = renderer->GetShadowMapSize(); shadowMapSize *= 2; if (shadowMapSize > 2048) shadowMapSize = 512; renderer->SetShadowMapSize(shadowMapSize); } // Shadow depth and filtering quality else if (key == '6') { int quality = renderer->GetShadowQuality(); ++quality; if (quality > SHADOWQUALITY_HIGH_24BIT) quality = SHADOWQUALITY_LOW_16BIT; renderer->SetShadowQuality(quality); } // Occlusion culling else if (key == '7') { bool occlusion = renderer->GetMaxOccluderTriangles() > 0; occlusion = !occlusion; renderer->SetMaxOccluderTriangles(occlusion ? 5000 : 0); } // Instancing else if (key == '8') renderer->SetDynamicInstancing(!renderer->GetDynamicInstancing()); } }