diff options
author | est31 <MTest31@outlook.com> | 2016-05-27 08:35:07 +0200 |
---|---|---|
committer | est31 <MTest31@outlook.com> | 2016-06-03 19:42:57 +0200 |
commit | 2060fd9cbe587d7e8ffe0cecdd67925f13a56c05 (patch) | |
tree | f9f74c0a6609b0063fec6ed6f3d43fe42e43d5f1 /src/localplayer.cpp | |
parent | 1e86c89f3614cf298916149a8f13d44ea671da64 (diff) | |
download | minetest-2060fd9cbe587d7e8ffe0cecdd67925f13a56c05.tar.gz minetest-2060fd9cbe587d7e8ffe0cecdd67925f13a56c05.tar.bz2 minetest-2060fd9cbe587d7e8ffe0cecdd67925f13a56c05.zip |
Initial Gamepad support
Adds initial ingame gamepad support to minetest.
Full Formspec support is not implemented yet and
can be added by a later change.
Diffstat (limited to 'src/localplayer.cpp')
-rw-r--r-- | src/localplayer.cpp | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/localplayer.cpp b/src/localplayer.cpp index 507f31980..732ca8acf 100644 --- a/src/localplayer.cpp +++ b/src/localplayer.cpp @@ -528,18 +528,23 @@ void LocalPlayer::applyControl(float dtime) speedH += move_direction; } } - if(control.down) - { + if (control.down) { speedH -= move_direction; } - if(control.left) - { + if (!control.up && !control.down) { + speedH -= move_direction * + (control.forw_move_joystick_axis / 32767.f); + } + if (control.left) { speedH += move_direction.crossProduct(v3f(0,1,0)); } - if(control.right) - { + if (control.right) { speedH += move_direction.crossProduct(v3f(0,-1,0)); } + if (!control.left && !control.right) { + speedH -= move_direction.crossProduct(v3f(0,1,0)) * + (control.sidew_move_joystick_axis / 32767.f); + } if(control.jump) { if (free_move) { |