ajout deplacement camera avec la souris

This commit is contained in:
StratiX0
2024-04-03 11:07:53 +02:00
parent bbb31b1161
commit 5817867594
4 changed files with 62 additions and 32 deletions

View File

@@ -572,11 +572,14 @@ void ApplicationClass::Shutdown()
bool ApplicationClass::Frame(InputClass* Input)
{
int mouseX, mouseY;
int mouseX, mouseY, currentMouseX, currentMouseY;
bool result, mouseDown, keyDown;
float rotationY;
float rotationY, rotationX;
float frameTime;
static int lastMouseX = 0, lastMouseY = 0;
static float rotation = 360.0f;
static float x = 6.f;
static float y = 3.f;
@@ -594,6 +597,19 @@ bool ApplicationClass::Frame(InputClass* Input)
return false;
}
// Get the location of the mouse from the input object,
Input->GetMouseLocation(mouseX, mouseY);
currentMouseX = mouseX;
float deltaX = currentMouseX - lastMouseX; // Calculez le d<>placement de la souris
lastMouseX = currentMouseX; // Mettez <20> jour la derni<6E>re position de la souris pour la prochaine image
currentMouseY = mouseY;
float deltaY = currentMouseY - lastMouseY; // Calculez le d<>placement de la souris
lastMouseY = currentMouseY; // Mettez <20> jour la derni<6E>re position de la souris pour la prochaine image
// Set the frame time for calculating the updated position.
m_Position->SetFrameTime(m_Timer->GetTime());
@@ -604,11 +620,13 @@ bool ApplicationClass::Frame(InputClass* Input)
keyDown = Input->IsRightArrowPressed();
m_Position->TurnRight(keyDown);
m_Position->TurnMouse(deltaX, deltaY);
// Get the current view point rotation.
m_Position->GetRotation(rotationY);
m_Position->GetRotation(rotationY, rotationX);
// Set the rotation of the camera.
m_Camera->SetRotation(0.0f, rotationY, 0.0f);
m_Camera->SetRotation(rotationX, rotationY, 0.0f);
m_Camera->Render();
// Render the graphics scene.
@@ -648,9 +666,6 @@ bool ApplicationClass::Frame(InputClass* Input)
return false;
}
// Get the location of the mouse from the input object,
Input->GetMouseLocation(mouseX, mouseY);
// Check if the mouse has been pressed.
mouseDown = Input->IsMousePressed();
@@ -661,25 +676,6 @@ bool ApplicationClass::Frame(InputClass* Input)
return false;
}
//// Obtenez la position de la souris
//Input->GetMouseLocation(mouseX, mouseY);
//// Calculez la distance parcourue par la souris depuis le dernier frame
//float deltaX = mouseX - m_previousMouseX;
//float deltaY = mouseY - m_previousMouseY;
//// Mettez <20> jour les positions pr<70>c<EFBFBD>dentes de la souris
//m_previousMouseX = mouseX;
//m_previousMouseY = mouseY;
//// Utilisez deltaX et deltaY pour ajuster la rotation de la cam<61>ra
//float rotationSpeed = 0.1f; // Ajustez cette valeur pour changer la vitesse de rotation
//float rotationX = m_Camera->GetRotation().x + deltaY * rotationSpeed;
//float rotationY = m_Camera->GetRotation().y + deltaX * rotationSpeed;
//// Mettez <20> jour la rotation de la cam<61>ra
//m_Camera->SetRotation(rotationX, rotationY, 0.0f);
// Update the sprite object using the frame time.
m_Sprite->Update(frameTime);