Skip to content

Commit 9bf43a7

Browse files
committed
fix mouse motion on pointer lock
1 parent f8375a1 commit 9bf43a7

File tree

3 files changed

+14
-6
lines changed

3 files changed

+14
-6
lines changed

nge-web/src/main/java/org/ngengine/web/input/WebKeyInput.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,14 @@
33
import java.util.ArrayList;
44
import java.util.List;
55

6-
import org.teavm.jso.browser.Window;
76
import org.teavm.jso.dom.events.Event;
87
import org.teavm.jso.dom.events.EventListener;
98
import org.teavm.jso.dom.events.KeyboardEvent;
109

1110
import com.jme3.input.KeyInput;
12-
import com.jme3.input.MouseInput;
1311
import com.jme3.input.RawInputListener;
1412
import com.jme3.input.event.KeyInputEvent;
15-
import com.jme3.input.event.MouseMotionEvent;
16-
1713
import org.ngengine.web.WebBinds;
18-
import org.ngengine.web.context.WebCanvasElement;
1914

2015
public class WebKeyInput implements KeyInput {
2116
private boolean initialized = false;

nge-web/src/main/java/org/ngengine/web/input/WebMouseInput.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@ private void handleWebEvent(Event evt) {
7777
if (isLocked() && !undefinedPos) { // captured pointer mode
7878
dX = (int) ev.getMovementX();
7979
dY = (int) ev.getMovementY();
80-
dY = -dY;
8180
xPos += dX;
8281
yPos += dY;
8382
} else {

nge-web/src/main/resources/org/ngengine/web/Window.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,20 @@ function bindListeners(canvas,renderTarget){
7070
event.targetTouches = inputEvent.targetTouches ? makeTouchesClonable(inputEvent.targetTouches) : [];
7171
event.changedTouches = inputEvent.changedTouches ? makeTouchesClonable(inputEvent.changedTouches) : [];
7272

73+
{
74+
const rect = canvas.getBoundingClientRect();
75+
const scaleX = canvas.width / rect.width;
76+
const scaleY = canvas.height / rect.height;
77+
78+
if(event.movementY) {
79+
event.movementY = -event.movementY * scaleY;
80+
}
81+
82+
if(event.movementX){
83+
event.movementX = event.movementX * scaleX;
84+
}
85+
}
86+
7387
if (event.clientX !== undefined) {
7488
const rect = canvas.getBoundingClientRect();
7589
const scaleX = canvas.width / rect.width;

0 commit comments

Comments
 (0)