From b6d6a5619f4c28fabe91d66cf45522ac5f218202 Mon Sep 17 00:00:00 2001 From: ssugar Date: Tue, 2 Aug 2016 22:17:22 +0700 Subject: [PATCH 1/2] setting stick X and Y to base X and Y in _onUp when stationarybase: true --- virtualjoystick.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/virtualjoystick.js b/virtualjoystick.js index 804af04..f02b7c5 100644 --- a/virtualjoystick.js +++ b/virtualjoystick.js @@ -155,6 +155,9 @@ VirtualJoystick.prototype._onUp = function() this._baseX = this._baseY = 0; this._stickX = this._stickY = 0; + }else{ + this._stickX = this._baseX; + this._stickY = this._baseY; } } From a10ba08c0c0e25ff6c54fd9ef98d393f2955f3f2 Mon Sep 17 00:00:00 2001 From: ssugar Date: Wed, 3 Aug 2016 17:10:36 +0700 Subject: [PATCH 2/2] adding a function that returns the angle of the joystick --- virtualjoystick.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/virtualjoystick.js b/virtualjoystick.js index f02b7c5..8aaa0ec 100644 --- a/virtualjoystick.js +++ b/virtualjoystick.js @@ -107,6 +107,15 @@ VirtualJoystick.touchScreenAvailable = function() VirtualJoystick.prototype.deltaX = function(){ return this._stickX - this._baseX; } VirtualJoystick.prototype.deltaY = function(){ return this._stickY - this._baseY; } +VirtualJoystick.prototype.angle = function(){ + var dx = this._stickX - this._baseX; + var dy = this._stickY - this._baseY; + var theta = Math.atan2(dy, dx); + theta *= 180/Math.PI; + theta = -theta; + theta = (theta > 0 ? theta : (360 + theta)); + return theta; +} VirtualJoystick.prototype.up = function(){ if( this._pressed === false ) return false;