mirror of
https://github.com/RandomityGuy/MBHaxe.git
synced 2025-10-30 08:11:25 +00:00
Fix js crashing on mobile, respect deadzone and make configurable
This commit is contained in:
parent
dc9ee0a60c
commit
5eb8e39b82
4 changed files with 18 additions and 8 deletions
|
|
@ -163,7 +163,7 @@ class CameraController extends Object {
|
||||||
|
|
||||||
var cameraPitchDelta = (Key.isDown(Settings.controlsSettings.camBackward) ? 1 : 0)
|
var cameraPitchDelta = (Key.isDown(Settings.controlsSettings.camBackward) ? 1 : 0)
|
||||||
- (Key.isDown(Settings.controlsSettings.camForward) ? 1 : 0)
|
- (Key.isDown(Settings.controlsSettings.camForward) ? 1 : 0)
|
||||||
- Gamepad.getAxis(Settings.gamepadSettings.cameraYAxis);
|
+ Gamepad.getAxis(Settings.gamepadSettings.cameraYAxis);
|
||||||
if (Settings.gamepadSettings.invertYAxis)
|
if (Settings.gamepadSettings.invertYAxis)
|
||||||
cameraPitchDelta = -cameraPitchDelta;
|
cameraPitchDelta = -cameraPitchDelta;
|
||||||
nextCameraPitch += 0.75 * 5 * cameraPitchDelta * dt * Settings.gamepadSettings.cameraSensitivity;
|
nextCameraPitch += 0.75 * 5 * cameraPitchDelta * dt * Settings.gamepadSettings.cameraSensitivity;
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package src;
|
||||||
|
|
||||||
import hxd.Pad;
|
import hxd.Pad;
|
||||||
import src.Console;
|
import src.Console;
|
||||||
|
import src.Settings;
|
||||||
|
|
||||||
class Gamepad {
|
class Gamepad {
|
||||||
public static var gamepad:Pad = Pad.createDummy();
|
public static var gamepad:Pad = Pad.createDummy();
|
||||||
|
|
@ -12,7 +13,7 @@ class Gamepad {
|
||||||
|
|
||||||
public static function onPad(pad:Pad) {
|
public static function onPad(pad:Pad) {
|
||||||
Console.log("Gamepad found");
|
Console.log("Gamepad found");
|
||||||
pad.axisDeadZone = 0.2;
|
pad.axisDeadZone = Settings.gamepadSettings.axisDeadzone;
|
||||||
pad.onDisconnect = function() {
|
pad.onDisconnect = function() {
|
||||||
Console.log("Gamepad disconnected");
|
Console.log("Gamepad disconnected");
|
||||||
gamepad = Pad.createDummy();
|
gamepad = Pad.createDummy();
|
||||||
|
|
@ -100,9 +101,16 @@ class Gamepad {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getAxis(axis:String) {
|
public static function getAxis(axis:String) {
|
||||||
var axisId = getId(axis);
|
switch (axis) {
|
||||||
if (axisId < 0 || axisId > gamepad.values.length)
|
case "analogX":
|
||||||
|
return gamepad.xAxis;
|
||||||
|
case "analogY":
|
||||||
|
return gamepad.yAxis;
|
||||||
|
case "ranalogX":
|
||||||
|
return gamepad.rxAxis;
|
||||||
|
case "ranalogY":
|
||||||
|
return gamepad.ryAxis;
|
||||||
|
}
|
||||||
return 0.0;
|
return 0.0;
|
||||||
return gamepad.values[axisId];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1687,7 +1687,7 @@ class Marble extends GameObject {
|
||||||
var move = new Move();
|
var move = new Move();
|
||||||
move.d = new Vector();
|
move.d = new Vector();
|
||||||
if (this.controllable && this.mode != Finish && !MarbleGame.instance.paused && !this.level.isWatching) {
|
if (this.controllable && this.mode != Finish && !MarbleGame.instance.paused && !this.level.isWatching) {
|
||||||
move.d.x = -Gamepad.getAxis(Settings.gamepadSettings.moveYAxis);
|
move.d.x = Gamepad.getAxis(Settings.gamepadSettings.moveYAxis);
|
||||||
move.d.y = -Gamepad.getAxis(Settings.gamepadSettings.moveXAxis);
|
move.d.y = -Gamepad.getAxis(Settings.gamepadSettings.moveXAxis);
|
||||||
if (Key.isDown(Settings.controlsSettings.forward)) {
|
if (Key.isDown(Settings.controlsSettings.forward)) {
|
||||||
move.d.x -= 1;
|
move.d.x -= 1;
|
||||||
|
|
|
||||||
|
|
@ -85,6 +85,7 @@ typedef GamepadSettings = {
|
||||||
var cameraSensitivity:Float;
|
var cameraSensitivity:Float;
|
||||||
var invertXAxis:Bool;
|
var invertXAxis:Bool;
|
||||||
var invertYAxis:Bool;
|
var invertYAxis:Bool;
|
||||||
|
var axisDeadzone:Float;
|
||||||
var respawn:Array<String>;
|
var respawn:Array<String>;
|
||||||
var blast:Array<String>;
|
var blast:Array<String>;
|
||||||
}
|
}
|
||||||
|
|
@ -165,6 +166,7 @@ class Settings {
|
||||||
cameraSensitivity: 1.0,
|
cameraSensitivity: 1.0,
|
||||||
invertXAxis: false,
|
invertXAxis: false,
|
||||||
invertYAxis: false,
|
invertYAxis: false,
|
||||||
|
axisDeadzone: 0.15,
|
||||||
respawn: ["back"],
|
respawn: ["back"],
|
||||||
blast: ["X", "LB", "RB"]
|
blast: ["X", "LB", "RB"]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue