only reset mouse pos when needed
This commit is contained in:
parent
9cb32c3cc5
commit
6e7032f2ae
|
@ -377,9 +377,27 @@ Public Class OverworldCamera
|
||||||
|
|
||||||
Public Sub ResetCursor()
|
Public Sub ResetCursor()
|
||||||
If GameInstance.IsActive = True Then
|
If GameInstance.IsActive = True Then
|
||||||
Mouse.SetPosition(CInt(windowSize.Width / 2), CInt(windowSize.Height / 2))
|
' Only reset the mouse position when it's "close" to the border of the client rect
|
||||||
oldX = CInt(windowSize.Width / 2)
|
Dim horizontalCutoff = windowSize.Width / 10.0F
|
||||||
oldY = CInt(windowSize.Height / 2)
|
Dim verticalCutoff = windowSize.Height / 10.0F
|
||||||
|
Dim mousePos = Mouse.GetState().Position.ToVector2()
|
||||||
|
|
||||||
|
If mousePos.X <= horizontalCutoff OrElse
|
||||||
|
mousePos.X >= windowSize.Width - horizontalCutoff OrElse
|
||||||
|
mousePos.Y <= verticalCutoff OrElse
|
||||||
|
mousePos.Y >= windowSize.Height - verticalCutoff Then
|
||||||
|
|
||||||
|
Mouse.SetPosition(CInt(windowSize.Width / 2), CInt(windowSize.Height / 2))
|
||||||
|
oldX = CInt(windowSize.Width / 2)
|
||||||
|
oldY = CInt(windowSize.Height / 2)
|
||||||
|
|
||||||
|
Else
|
||||||
|
|
||||||
|
oldX = mousePos.X
|
||||||
|
oldY = mousePos.Y
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue