Le Sparte Posted April 8, 2017 Share Posted April 8, 2017 Hi there, Hi have a sprite moving on the x axis at a given speed. When the user press on the space bar, I want (1) the sprite to stop on y axis, (2) make a move to the right, (3) go back at his initial position, and (4) continue his way on y. I've tried with the following code but the sprite stops while going back to his position and keeps shaking. Is there an easier way to do what I'm trying to achieve? If not, how could I debug this code? Many thanks! PS: my sprite will have to consider collisions. if (this.space.isDown){ let position_man = this.man.body.y; let speed_man = this.man.body.velocity.y; this.man.body.velocity.y = 0; let tween = game.add.tween(this.man); tween.to({x:200},100,"Quart.easeOut"); tween.start(); tween.onComplete.addOnce(retour,this); function retour(){ let tween2 = game.add.tween(this.man); tween2.to({x:100},100,"Quart.easeOut"); tween2.start(); } this.man.body.velocity.y = speed_man; Link to comment Share on other sites More sharing options...
samid737 Posted April 8, 2017 Share Posted April 8, 2017 You can use the yoyo feature in Phaser to go back to the initialposition: https://phaser.io/examples/v2/tweens/yoyo Here is an example of the yoyo kind of applied to your situation: https://jsfiddle.net/samid737/xL93znob/ Link to comment Share on other sites More sharing options...
samme Posted April 8, 2017 Share Posted April 8, 2017 You should set this.man.body.moves = false while the tween is running and then reset (true) when it's complete. Link to comment Share on other sites More sharing options...
Le Sparte Posted April 9, 2017 Author Share Posted April 9, 2017 Thank you very much for your detailed example samid737! And thank you samme for the line to stop shaking! I'm unlocked now! Link to comment Share on other sites More sharing options...
Recommended Posts