Example #1
0
void Projekt::OnResize()
{
	D3D11App::OnResize();

	mGame->GetCamera()->SetLens(0.25f*MathHelper::pi, D3D11App::AspectRatio(), 1.0f, 100000.0f);
	mGame->GetCamera()->ComputeFrustum();
}
Example #2
0
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);
}
Example #3
0
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));
}