Exemple #1
0
	/// Overloaded. Updates the Displable component based on recent changes.
	virtual void update(XInfo* xinfo, GameTime* gameTime)
	{
		// retrieves the state monitor devices for both the keyboard and mouse
		KeyboardState* keyboard = xinfo->getKeyboardState();
		MouseState* mouse = xinfo->getMouseState();

		// series of actions based on the keyboard actions
		if(keyboard->isKeyDown(KEY_SPACE))
		{
			// creates a new text component with the string "SPACEBAR" and specified color
			// this is created at a location relative to the current mouse position
			Text* spaceText = new Text(mouse->getX() - 50, mouse->getY() - 2, "SPACEBAR", color);
			polyLine->add_point(mouse->getX(), mouse->getY());
			addComponent(spaceText);
		}

		// changes the color if the left arrow key is pressed
		if(keyboard->isKeyDown(KEY_LEFT))
		{
			xinfo->setColor(polyLine->getLineContext(), ColorConstants::COLOR_GREEN);
		}

		// changes the color if the right arrow key is pressed
		if(keyboard->isKeyDown(KEY_RIGHT))
		{
			xinfo->setColor(polyLine->getLineContext(), ColorConstants::COLOR_RED);
		}
	}
Exemple #2
0
//----------------------------------------------------------------------------------
static void UpdateGame(unsigned int elapsedMS)
{
	KeyboardState keyState = Keyboard::GetState();

	if (keyState->IsKeyDown(SDL_SCANCODE_ESCAPE))
	{
		quit = true;
		return;
	}
	
	oldKeyState = keyState;
}
void Scene::UpdateInput()
{
	static KeyboardState state;
	if (!m_keyboard->GetState(state))
		return;
	float factor = 0.01f;
	if (state.isKeyDown(DIK_W))
	{
		m_camera.UpdatePosition(XMVector3Normalize(-m_camera.camTarget));
	}
	if (state.isKeyDown(DIK_S))
	{
		m_camera.UpdatePosition(XMVector3Normalize(m_camera.camTarget));
	}
	if (state.isKeyDown(DIK_A))
	{
		m_camera.UpdatePosition(XMVector3Normalize(XMVector3Cross(XMVector3Normalize(m_camera.camTarget), m_camera.camUp)));
	}
	if (state.isKeyDown(DIK_D))
	{
		m_camera.UpdatePosition(XMVector3Normalize(XMVector3Cross(m_camera.camUp, XMVector3Normalize(m_camera.camTarget))));
	}
	if (state.isKeyDown(DIK_Z))
	{
		m_camera.UpdatePosition(XMVector3Normalize(m_camera.camUp));
	}
	if (state.isKeyDown(DIK_X))
	{
		m_camera.UpdatePosition(XMVector3Normalize(-m_camera.camUp));
	}
}
Exemple #4
0
void Game1::Update(unsigned int time)
{
	KeyboardState cState = Keyboard::GetState();
	MouseState mState = Mouse::GetState();
	world->Step(time * 0.001f, 6, 2);
	if (cState.IsKeyDown(SDLK_y) && !oldState.IsKeyDown(SDLK_y))
	{
		AddCube(mState.X, mState.Y, mState.RelX, mState.RelY);
	}
	if (cState.IsKeyDown(SDLK_x) && !oldState.IsKeyDown(SDLK_x))
	{
		AddCircle(mState.X, mState.Y, mState.RelX * 10, mState.RelY * 10);
	}
	if (cState.IsKeyDown(SDLK_c) && !oldState.IsKeyDown(SDLK_c))
	{
		AddTriangle(mState.X, mState.Y, mState.RelX * 10, mState.RelY * 10);
	}
	if (cState.IsKeyDown(SDLK_v) && !oldState.IsKeyDown(SDLK_v))
	{
		AddRope(mState.X, mState.Y);
	}
	oldState = cState;
}
Exemple #5
0
void Scene::ReadKeyboard(bool isRotate)
{
	static KeyboardState state;
	if (!m_keyboard->GetState(state))
		return;
	float factor = 0.01f;
	if (state.isKeyDown(DIK_RIGHT))
	{
		if (isRotate)
			m_camera.Rotate(1, 0);
		else
			m_camera.Move(0, 0, -1);
	}
	if (state.isKeyDown(DIK_LEFT))
	{
		if (isRotate)
			m_camera.Rotate(-1, 0);
		else
			m_camera.Move(0, 0, 1);
	}
	if (state.isKeyDown(DIK_UP))
	{
		if (isRotate)
			m_camera.Rotate(0, 1);
		else
			m_camera.Move(1, 0, 0);
	}
	if (state.isKeyDown(DIK_DOWN))
	{
		if (isRotate)
			m_camera.Rotate(0, -1);
		else
			m_camera.Move(-1, 0, 0);
	}
	if (state.isKeyDown(DIK_RSHIFT))
		m_camera.Move(0, 1, 0);
	if (state.isKeyDown(DIK_RCONTROL))
		m_camera.Move(0, -1, 0);
}
void gameInput()
{
	// Game state
	if (currState.isKeyDown(KEY_ESC))
	{
		glutLeaveMainLoop();
	}
	else if (currState.isKeyDown(KEY_SPACE))
	{
		Random random;
		int num = random.getInt(2);
		if (num == 0)
		{
			ball.launch(Vector2(1.0f, random.getFloat(-1.0f, 1.0f)));
		}
		else if (num == 1)
		{
			ball.launch(Vector2(-1.0f, random.getFloat(-1.0f, 1.0f)));
		}
	}
	else if (currState.isKeyDown(KEY_B) && prevState.isKeyUp(KEY_B))
	{
		// Toggle debug drawing
		DebugDrawing::getInstance().enabled = !DebugDrawing::getInstance().enabled;
	}
	else if (currState.isKeyDown(KEY_P) && prevState.isKeyUp(KEY_P))
	{
		if (paused)
		{
			timer.start();

			paused = false;
		}
		else
		{
			keyboard.onPause();

			timer.stop();

			paused = true;
		}
	}
	else if(currState.isKeyDown(KEY_R) && prevState.isKeyUp(KEY_R))
	{
		if (won)
		{
			// reset the string
			whoWon = "";

			// reset the scores of both players
			playerScore = 0;
			aiScore = 0;

			ball.reset(Point2(static_cast<float>(window.centerX), static_cast<float>(window.centerY)));

			won = false;
		}
	}
	
	// Player movement
	if (currState.isKeyDown(KEY_W))
	{
		player.movePaddle(Vector2(0.0f, -1.0f));
	}
	else if (currState.isKeyDown(KEY_S))
	{
		player.movePaddle(Vector2(0.0f, 1.0f));
	}
}
Exemple #7
0
void MSAAFilter::Update(const Timer& timer)
{
    AppSettings::UpdateUI();

    MouseState mouseState = MouseState::GetMouseState(window);
    KeyboardState kbState = KeyboardState::GetKeyboardState(window);

    if(kbState.IsKeyDown(KeyboardState::Escape))
        window.Destroy();

    float CamMoveSpeed = 5.0f * timer.DeltaSecondsF();
    const float CamRotSpeed = 0.180f * timer.DeltaSecondsF();
    const float MeshRotSpeed = 0.180f * timer.DeltaSecondsF();

    // Move the camera with keyboard input
    if(kbState.IsKeyDown(KeyboardState::LeftShift))
        CamMoveSpeed *= 0.25f;

    Float3 camPos = camera.Position();
    if(kbState.IsKeyDown(KeyboardState::W))
        camPos += camera.Forward() * CamMoveSpeed;
    else if (kbState.IsKeyDown(KeyboardState::S))
        camPos += camera.Back() * CamMoveSpeed;
    if(kbState.IsKeyDown(KeyboardState::A))
        camPos += camera.Left() * CamMoveSpeed;
    else if (kbState.IsKeyDown(KeyboardState::D))
        camPos += camera.Right() * CamMoveSpeed;
    if(kbState.IsKeyDown(KeyboardState::Q))
        camPos += camera.Up() * CamMoveSpeed;
    else if (kbState.IsKeyDown(KeyboardState::E))
        camPos += camera.Down() * CamMoveSpeed;
    camera.SetPosition(camPos);

    // Rotate the camera with the mouse
    if(mouseState.RButton.Pressed && mouseState.IsOverWindow)
    {
        float xRot = camera.XRotation();
        float yRot = camera.YRotation();
        xRot += mouseState.DY * CamRotSpeed;
        yRot += mouseState.DX * CamRotSpeed;
        camera.SetXRotation(xRot);
        camera.SetYRotation(yRot);
    }

    // Reset the camera projection
    camera.SetAspectRatio(camera.AspectRatio());
    Float2 jitter = 0.0f;
    if(AppSettings::EnableTemporalAA && AppSettings::EnableJitter() && AppSettings::UseStandardResolve == false)
    {
        if(AppSettings::JitterMode == JitterModes::Uniform2x)
        {
            jitter = frameCount % 2 == 0 ? -0.5f : 0.5f;
        }
        else if(AppSettings::JitterMode == JitterModes::Hammersley4x)
        {
            uint64 idx = frameCount % 4;
            jitter = Hammersley2D(idx, 4) * 2.0f - Float2(1.0f);
        }
        else if(AppSettings::JitterMode == JitterModes::Hammersley8x)
        {
            uint64 idx = frameCount % 8;
            jitter = Hammersley2D(idx, 8) * 2.0f - Float2(1.0f);
        }
        else if(AppSettings::JitterMode == JitterModes::Hammersley16x)
        {
            uint64 idx = frameCount % 16;
            jitter = Hammersley2D(idx, 16) * 2.0f - Float2(1.0f);
        }

        jitter *= AppSettings::JitterScale;

        const float offsetX = jitter.x * (1.0f / colorTarget.Width);
        const float offsetY = jitter.y * (1.0f / colorTarget.Height);
        Float4x4 offsetMatrix = Float4x4::TranslationMatrix(Float3(offsetX, -offsetY, 0.0f));
        camera.SetProjection(camera.ProjectionMatrix() * offsetMatrix);
    }

    jitterOffset = (jitter - prevJitter) * 0.5f;
    prevJitter = jitter;

    // Toggle VSYNC
    if(kbState.RisingEdge(KeyboardState::V))
        deviceManager.SetVSYNCEnabled(!deviceManager.VSYNCEnabled());

    deviceManager.SetNumVSYNCIntervals(AppSettings::DoubleSyncInterval ? 2 : 1);

    if(AppSettings::CurrentScene.Changed())
    {
        meshRenderer.SetModel(&models[AppSettings::CurrentScene]);
        AppSettings::ModelOrientation.SetValue(modelOrientations[AppSettings::CurrentScene]);
    }

    Quaternion orientation = AppSettings::ModelOrientation;
    orientation = orientation * Quaternion::FromAxisAngle(Float3(0.0f, 1.0f, 0.0f), AppSettings::ModelRotationSpeed * timer.DeltaSecondsF());
    AppSettings::ModelOrientation.SetValue(orientation);

    modelTransform = orientation.ToFloat4x4() * Float4x4::ScaleMatrix(ModelScales[AppSettings::CurrentScene]);
    modelTransform.SetTranslation(ModelPositions[AppSettings::CurrentScene]);
}
Exemple #8
0
void ShadowsApp::Update(const Timer& timer)
{
    MouseState mouseState = MouseState::GetMouseState(window);
    KeyboardState kbState = KeyboardState::GetKeyboardState(window);

    if (kbState.IsKeyDown(KeyboardState::Escape))
        window.Destroy();

    float CamMoveSpeed = 5.0f * timer.DeltaSecondsF();
    const float CamRotSpeed = 0.180f * timer.DeltaSecondsF();
    const float MeshRotSpeed = 0.180f * timer.DeltaSecondsF();

    // Move the camera with keyboard input
    if (kbState.IsKeyDown(KeyboardState::LeftShift))
        CamMoveSpeed *= 0.25f;

    Float3 camPos = camera.Position();
    if (kbState.IsKeyDown(KeyboardState::W))
        camPos += camera.Forward() * CamMoveSpeed;
    else if (kbState.IsKeyDown(KeyboardState::S))
        camPos += camera.Back() * CamMoveSpeed;
    if (kbState.IsKeyDown(KeyboardState::A))
        camPos += camera.Left() * CamMoveSpeed;
    else if (kbState.IsKeyDown(KeyboardState::D))
        camPos += camera.Right() * CamMoveSpeed;
    if (kbState.IsKeyDown(KeyboardState::Q))
        camPos += camera.Up() * CamMoveSpeed;
    else if (kbState.IsKeyDown(KeyboardState::E))
        camPos += camera.Down() * CamMoveSpeed;

    camera.SetPosition(camPos);

    // Rotate the camera with the mouse
    if(mouseState.RButton.Pressed && mouseState.IsOverWindow)
    {
        float xRot = camera.XRotation();
        float yRot = camera.YRotation();
        xRot += mouseState.DY * CamRotSpeed;
        yRot += mouseState.DX * CamRotSpeed;
        camera.SetXRotation(xRot);
        camera.SetYRotation(yRot);
    }

    if(AppSettings::AnimateLight)
    {
        float rotY = XMScalarModAngle(timer.DeltaSecondsF() * 0.25f);
        Quaternion rotation = Quaternion::FromAxisAngle(Float3(0.0f, 1.0f, 0.0f), rotY);
        Float3 lightDir = AppSettings::LightDirection;
        lightDir = Float3::Transform(lightDir, rotation);
        AppSettings::LightDirection.SetValue(lightDir);
    }

    // Toggle VSYNC
    if(kbState.RisingEdge(KeyboardState::V))
        deviceManager.SetVSYNCEnabled(!deviceManager.VSYNCEnabled());

    if(AppSettings::CurrentScene.Changed())
    {
        float scale = MeshScales[AppSettings::CurrentScene];
        meshRenderer.SetSceneMesh(deviceManager.ImmediateContext(), &models[AppSettings::CurrentScene],
                             XMMatrixScaling(scale, scale, scale));
    }

    AppSettings::Update();

    meshRenderer.Update();
}