void Projekt::OnResize() { D3D11App::OnResize(); mGame->GetCamera()->SetLens(0.25f*MathHelper::pi, D3D11App::AspectRatio(), 1.0f, 100000.0f); mGame->GetCamera()->ComputeFrustum(); }
void Player::OnFrameEnter(Game &game) { float frameTime = game.GetWindow().GetFrameTime(); sf::Vector2f camPos = game.GetCamera().GetCenter(); sf::Vector2f playerPos = _sprite.GetPosition(); if (game.GetWindow().GetInput().IsKeyDown(sf::Key::Left) && playerPos.x >= (_sprite.GetSize().x/2)) { _sprite.Move(-_speed * frameTime, 0); } if (game.GetWindow().GetInput().IsKeyDown(sf::Key::Right)) { _sprite.Move(_speed * frameTime, 0); } // if (game.GetWindow().GetInput().IsKeyDown(sf::Key::Down)) { // _sprite.Move(0, _speed * frameTime); // } // // if (game.GetWindow().GetInput().IsKeyDown(sf::Key::Up)) { // _sprite.Move(0, -_speed * frameTime); // } // Move camera right if (playerPos.x > camPos.x) { game.GetCamera().SetCenter(playerPos.x, camPos.y); // Move camera left } else if (playerPos.x < camPos.x && camPos.x > (game.GetCamera().GetHalfSize().x)) { game.GetCamera().SetCenter(playerPos.x, camPos.y); } game.GetWindow().Draw(_sprite); }
void Projekt::DrawScene() { //--------------------------------------------------------------------------- // Render scene to shadow map //--------------------------------------------------------------------------- mShadowMap->BindDsvAndSetNullRenderTarget(mDirect3D->GetImmediateContext()); mShadowMap->DrawSceneToShadowMap(mGenericInstances, *mGame->GetCamera(), mDirect3D->GetImmediateContext()); mDirect3D->GetImmediateContext()->RSSetState(0); // Restore back and depth buffer and viewport to the OM stage ID3D11RenderTargetView* renderTargets[1] = {mDirect3D->GetRenderTargetView()}; mDirect3D->GetImmediateContext()->OMSetRenderTargets(1, renderTargets, mDirect3D->GetDepthStencilView()); mDirect3D->GetImmediateContext()->ClearRenderTargetView(mDirect3D->GetRenderTargetView(), reinterpret_cast<const float*>(&Colors::LightSteelBlue)); mDirect3D->GetImmediateContext()->ClearDepthStencilView(mDirect3D->GetDepthStencilView(), D3D11_CLEAR_DEPTH|D3D11_CLEAR_STENCIL, 1.0f, 0); mDirect3D->GetImmediateContext()->RSSetViewports(1, &mDirect3D->GetScreenViewport()); //--------------------------------------------------------------------------- // Possible Wireframe render state // if (mDirectInput->GetKeyboardState()[DIK_E] && 0x80) // mDirect3D->GetImmediateContext()->RSSetState(RenderStates::WireFrameRS); //-------------------------------------------------------------- // Set shader constants //-------------------------------------------------------------- Effects::BasicFX->SetDirLights(mDirLights); Effects::BasicFX->SetEyePosW(mGame->GetCamera()->GetPosition()); Effects::BasicFX->SetShadowMap(mShadowMap->getDepthMapSRV()); Effects::BasicFX->SetCubeMap(mSky->cubeMapSRV()); Effects::NormalMapFX->SetDirLights(mDirLights); Effects::NormalMapFX->SetEyePosW(mGame->GetCamera()->GetPosition()); Effects::NormalMapFX->SetShadowMap(mShadowMap->getDepthMapSRV()); Effects::NormalMapFX->SetCubeMap(mSky->cubeMapSRV()); // Draw sky mSky->draw(mDirect3D->GetImmediateContext(), *mGame->GetCamera(), Gui->InMenu()); // Draw game mGame->Draw(mDirect3D->GetImmediateContext(), mShadowMap); this->soundModule->updateAndPlay(mGame->GetCamera(), mGame->GetCamera()->GetPosition()); // Draw the GUI Gui->Render(mDirect3D->GetImmediateContext(), mGame->GetPlayer()->GetPosition()); // Unbind shadow map and AmbientMap as a shader input because we are going to render // to it next frame. These textures can be at any slot, so clear all slots. ID3D11ShaderResourceView* nullSRV[16] = { 0 }; mDirect3D->GetImmediateContext()->PSSetShaderResources(0, 16, nullSRV); // Restore default states float blendFactor[] = {0.0f, 0.0f, 0.0f, 0.0f}; mDirect3D->GetImmediateContext()->RSSetState(0); mDirect3D->GetImmediateContext()->OMSetDepthStencilState(0, 0); mDirect3D->GetImmediateContext()->OMSetBlendState(0, blendFactor, 0xffffffff); HR(mDirect3D->GetSwapChain()->Present(0, 0)); }