A swipe component for Phaser.io
You can grab the swipe.js file and include it in your project, or you can use npm or bower:
npm install phaser-swipe
bower install phaser-swipe
You can use it in two ways; with or without a model. This is without model.
var Swipe = require('phaser-swipe');
// in create
this.swipe = new Swipe(this.game);
// in update
var direction = this.swipe.check();
if (direction!==null) {
// direction= { x: x, y: y, direction: direction }
switch(direction.direction) {
case this.swipe.DIRECTION_LEFT: // do something
case this.swipe.DIRECTION_RIGHT:
case this.swipe.DIRECTION_UP:
case this.swipe.DIRECTION_DOWN:
case this.swipe.DIRECTION_UP_LEFT:
case this.swipe.DIRECTION_UP_RIGHT:
case this.swipe.DIRECTION_DOWN_LEFT:
case this.swipe.DIRECTION_DOWN_RIGHT:
}
}
This is with a model. Here you define your methods in your model. Only those methods defined will be used. So if you do not want the diagonals, you can just omit those methods.
function YourModel() {
up: function(point) {},
down: function(point) {},
left: function(point) {},
right: function(point) {},
upLeft: function(point) {},
upRight: function(point) {},
downLeft: function(point) {},
downRight: function(point) {}
};
// in create
this.swipe = new Swipe(this.game, yourmodel);
// in update. The methods will only be called if you have a swipe.
// point: { x: x, y: y }
this.swipe.check();
The module will automatically understand all arrow keys for understanding up/down/left/right. If you use the model, it will call the methods for you. If you do not use a model, you will get a direction from check(), but in both ways you will not get a point for where it was pressed.
It understands the diagonals also, so pressing up and right will return DIRECTION_UP_RIGHT and call model.upRight() if it exists. Because two keys need to be pressed, the signal for a single key will not fire until it is released.