Platform/Mouse: Add SetRelativeMouseMode
This commit is contained in:
parent
71c11c5d6f
commit
c071f52d8f
|
|
@ -272,6 +272,8 @@ int main()
|
|||
//Gestion des Evenements
|
||||
Nz::EventHandler& eventHandler = window.GetEventHandler();
|
||||
|
||||
Nz::Mouse::SetRelativeMouseMode(true);
|
||||
|
||||
eventHandler.OnMouseMoved.Connect([&camAngles, &cameraNode, &window](const Nz::EventHandler*, const Nz::WindowEvent::MouseMoveEvent& event)
|
||||
{
|
||||
if (Ndk::Application::Instance()->IsConsoleEnabled())
|
||||
|
|
@ -291,11 +293,6 @@ int main()
|
|||
|
||||
// On applique les angles d'Euler à notre caméra
|
||||
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)
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ namespace Nz
|
|||
static Vector2i GetPosition();
|
||||
static Vector2i GetPosition(const Window& relativeTo);
|
||||
static bool IsButtonPressed(Button button);
|
||||
static bool SetRelativeMouseMode(bool relativeMouseMode);
|
||||
static void SetPosition(const Vector2i& position);
|
||||
static void SetPosition(const Vector2i& position, const Window& relativeTo, bool ignoreEvent = true);
|
||||
static void SetPosition(int x, int y);
|
||||
|
|
|
|||
|
|
@ -34,6 +34,11 @@ namespace Nz
|
|||
return EventImpl::IsMouseButtonPressed(button);
|
||||
}
|
||||
|
||||
bool Mouse::SetRelativeMouseMode(bool relativeMouseMode)
|
||||
{
|
||||
return EventImpl::SetRelativeMouseMode(relativeMouseMode);
|
||||
}
|
||||
|
||||
void Mouse::SetPosition(const Vector2i& position)
|
||||
{
|
||||
EventImpl::SetMousePosition(position.x, position.y);
|
||||
|
|
|
|||
|
|
@ -85,6 +85,11 @@ namespace Nz
|
|||
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)
|
||||
{
|
||||
if (SDL_WarpMouseGlobal(x, y) != 0)
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ namespace Nz
|
|||
static bool IsKeyPressed(Keyboard::Scancode key);
|
||||
static bool IsKeyPressed(Keyboard::VKey key);
|
||||
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, const Window& relativeTo);
|
||||
static void StartTextInput();
|
||||
|
|
|
|||
Loading…
Reference in New Issue