示例#1
0
文件: Camera.cpp 项目: pipmix/Game
void Camera::Update(float t){


	if (m_Input->IsPressed(INPUT_ROTATELEFT))m_CameraRotation.y -= (m_CameraSpeed * t) / 2;
	if (m_Input->IsPressed(INPUT_ROTATERIGHT))m_CameraRotation.y += (m_CameraSpeed * t) / 2;



	// MOVE
	XMFLOAT3 moveFloat = XMFLOAT3{ 0.0f,0.0f,0.0f };

	if (m_Input->IsPressed(INPUT_UP))moveFloat.z = 1.0f;
	if (m_Input->IsPressed(INPUT_DOWN))moveFloat.z = -1.0f;
	if (m_Input->IsPressed(INPUT_RIGHT))moveFloat.x = 1.0f;
	if (m_Input->IsPressed(INPUT_LEFT))moveFloat.x = -1.0f;

	XMVECTOR moveVector = XMLoadFloat3(&moveFloat);

	XMVector3Normalize(moveVector);
	moveVector *=  t * m_CameraSpeed;

	Move(moveVector);
	// END MOVE

	XMMATRIX cameraScreenMatrix = CreateCameraMatrix() * CreateScreenMatrix();
	XMStoreFloat4x4(&m_CameraScreenMatrix, cameraScreenMatrix);

	m_PrevMousePosition = m_MousePosition;
	
}
示例#2
0
void Camera::tick(){
    Matrix ViewMatrix = CreateCameraMatrix(position, lookat, orientation);
    glUniformMatrix4fv(matrixUniformLocation, 1, GL_FALSE, ViewMatrix.m);
}