Platform/Mouse: Add SetRelativeMouseMode
This commit is contained in:
parent
71c11c5d6f
commit
c071f52d8f
|
|
@ -272,6 +272,8 @@ int main()
|
||||||
//Gestion des Evenements
|
//Gestion des Evenements
|
||||||
Nz::EventHandler& eventHandler = window.GetEventHandler();
|
Nz::EventHandler& eventHandler = window.GetEventHandler();
|
||||||
|
|
||||||
|
Nz::Mouse::SetRelativeMouseMode(true);
|
||||||
|
|
||||||
eventHandler.OnMouseMoved.Connect([&camAngles, &cameraNode, &window](const Nz::EventHandler*, const Nz::WindowEvent::MouseMoveEvent& event)
|
eventHandler.OnMouseMoved.Connect([&camAngles, &cameraNode, &window](const Nz::EventHandler*, const Nz::WindowEvent::MouseMoveEvent& event)
|
||||||
{
|
{
|
||||||
if (Ndk::Application::Instance()->IsConsoleEnabled())
|
if (Ndk::Application::Instance()->IsConsoleEnabled())
|
||||||
|
|
@ -291,11 +293,6 @@ int main()
|
||||||
|
|
||||||
// On applique les angles d'Euler à notre caméra
|
// On applique les angles d'Euler à notre caméra
|
||||||
cameraNode.SetRotation(camAngles);
|
cameraNode.SetRotation(camAngles);
|
||||||
|
|
||||||
// Pour éviter que le curseur ne sorte de l'écran, nous le renvoyons au centre de la fenétre
|
|
||||||
// Cette fonction est codée de sorte à ne pas provoquer d'événement MouseMoved
|
|
||||||
Nz::Vector2ui size = window.GetSize();
|
|
||||||
Nz::Mouse::SetPosition(size.x / 2, size.y / 2, window);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
eventHandler.OnKeyPressed.Connect([&targetPos, &cameraNode, &smoothMovement, &window](const Nz::EventHandler*, const Nz::WindowEvent::KeyEvent& event)
|
eventHandler.OnKeyPressed.Connect([&targetPos, &cameraNode, &smoothMovement, &window](const Nz::EventHandler*, const Nz::WindowEvent::KeyEvent& event)
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@ namespace Nz
|
||||||
static Vector2i GetPosition();
|
static Vector2i GetPosition();
|
||||||
static Vector2i GetPosition(const Window& relativeTo);
|
static Vector2i GetPosition(const Window& relativeTo);
|
||||||
static bool IsButtonPressed(Button button);
|
static bool IsButtonPressed(Button button);
|
||||||
|
static bool SetRelativeMouseMode(bool relativeMouseMode);
|
||||||
static void SetPosition(const Vector2i& position);
|
static void SetPosition(const Vector2i& position);
|
||||||
static void SetPosition(const Vector2i& position, const Window& relativeTo, bool ignoreEvent = true);
|
static void SetPosition(const Vector2i& position, const Window& relativeTo, bool ignoreEvent = true);
|
||||||
static void SetPosition(int x, int y);
|
static void SetPosition(int x, int y);
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,11 @@ namespace Nz
|
||||||
return EventImpl::IsMouseButtonPressed(button);
|
return EventImpl::IsMouseButtonPressed(button);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Mouse::SetRelativeMouseMode(bool relativeMouseMode)
|
||||||
|
{
|
||||||
|
return EventImpl::SetRelativeMouseMode(relativeMouseMode);
|
||||||
|
}
|
||||||
|
|
||||||
void Mouse::SetPosition(const Vector2i& position)
|
void Mouse::SetPosition(const Vector2i& position)
|
||||||
{
|
{
|
||||||
EventImpl::SetMousePosition(position.x, position.y);
|
EventImpl::SetMousePosition(position.x, position.y);
|
||||||
|
|
|
||||||
|
|
@ -85,6 +85,11 @@ namespace Nz
|
||||||
return (SDL_GetGlobalMouseState(nullptr, nullptr) & vButtons[button]) != 0;
|
return (SDL_GetGlobalMouseState(nullptr, nullptr) & vButtons[button]) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool EventImpl::SetRelativeMouseMode(bool relativeMouseMode)
|
||||||
|
{
|
||||||
|
return SDL_SetRelativeMouseMode((relativeMouseMode) ? SDL_TRUE : SDL_FALSE) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
void EventImpl::SetMousePosition(int x, int y)
|
void EventImpl::SetMousePosition(int x, int y)
|
||||||
{
|
{
|
||||||
if (SDL_WarpMouseGlobal(x, y) != 0)
|
if (SDL_WarpMouseGlobal(x, y) != 0)
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@ namespace Nz
|
||||||
static bool IsKeyPressed(Keyboard::Scancode key);
|
static bool IsKeyPressed(Keyboard::Scancode key);
|
||||||
static bool IsKeyPressed(Keyboard::VKey key);
|
static bool IsKeyPressed(Keyboard::VKey key);
|
||||||
static bool IsMouseButtonPressed(Mouse::Button button);
|
static bool IsMouseButtonPressed(Mouse::Button button);
|
||||||
|
static bool SetRelativeMouseMode(bool relativeMouseMode);
|
||||||
static void SetMousePosition(int x, int y);
|
static void SetMousePosition(int x, int y);
|
||||||
static void SetMousePosition(int x, int y, const Window& relativeTo);
|
static void SetMousePosition(int x, int y, const Window& relativeTo);
|
||||||
static void StartTextInput();
|
static void StartTextInput();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue