nak3ddogs Posted October 28, 2014 Share Posted October 28, 2014 Hi! First of all sry for my terrible english.I done a perfect method for me to move platforms with tween and i read the platforms's properties from the tiledmap json.The problem is coz i tween the sprite.x it is a repositioning and not a moving. But i wont tween the velocity coz this work pixel perfectly and i would use the quadratic easingI tryed this code but i not finished yet and it is not perfect.Somebody have a idea for better solution?My idea: make a invisible point tween this object and use acceleratetoobject method. I not tryed yet this.platform5group = this.game.add.group();this.platform5group.enableBody = true;this.platform5group.physicsBodyType = Phaser.Physics.ARCADE;this.game.map.createFromObjects('objects', 786, 'platform5', null, true, false, this.platform5group);this.platform5group.forEachExists(function(platform){if (typeof platform.xmove === 'undefined') { platform.xmove = 0; }if (typeof platform.ymove === 'undefined') { platform.ymove = 0; }if (typeof platform.blink === 'undefined') { platform.blink = false; }if (typeof platform.b_delay === 'undefined') { platform.b_delay = 0; }if (typeof platform.b_vis === 'undefined') { platform.b_vis = 1500; }if (typeof platform.b_hid === 'undefined') { platform.b_hid = 1500; }if (typeof platform.dest === 'undefined') { platform.dest = false; }if (typeof platform.d_out === 'undefined') { platform.d_out = 2000; }if (typeof platform.d_in === 'undefined') { platform.d_in = 2000; }if (typeof platform.allface === 'undefined') { platform.allface = false; }if (typeof platform.wait === 'undefined') { platform.wait = 0; }if (typeof platform.speed === 'undefined') { platform.speed = 1; }platform.tween_blink_out = null;platform.tween_blink_in = null;platform.body.immovable = true;if (platform.allface == false) {platform.body.checkCollision.right = false;platform.body.checkCollision.down = false;platform.body.checkCollision.left = false;}if (platform.xmove != 0 || platform.ymove != 0){this.game.add.tween(platform).to({x:platform.x+(platform.xmove*24), y:platform.y+(platform.ymove*24)}, Math.abs(platform.xmove+platform.ymove)*50/platform.speed, Phaser.Easing.Quadratic.InOut, true, platform.wait, Number.MAX_VALUE, true);}if (platform.blink) {platform.tween_blink_out = this.game.add.tween(platform);platform.tween_blink_out.to({alpha: 0}, 400, Phaser.Easing.Quadratic.Out, false, platform.b_vis, false).onComplete.add(function(){platform.tween_blink_in.start();platform.body.enable = false;},this);platform.tween_blink_in = this.game.add.tween(platform);platform.tween_blink_in.to({alpha: 1}, 400, Phaser.Easing.Quadratic.Out, false, platform.b_hid, false).onComplete.add(function(){platform.tween_blink_out.start();platform.body.enable = true;},this);platform.tween_blink_in.start();};},this);}, //end of createupdate: function () {this.game.physics.arcade.collide(this.game.player.sprite, this.platform3group);this.game.physics.arcade.collide(this.game.player.coinGroup, this.platform3group);this.game.physics.arcade.collide(this.game.player.sprite, this.platform5group, function(player, platform){player.x += platform.x - this.contactPoint;this.contactPoint = platform.x;}, null, this);this.game.physics.arcade.collide(this.game.player.coinGroup, this.platform5group);}, //end of update Link to comment Share on other sites More sharing options...
nak3ddogs Posted October 28, 2014 Author Share Posted October 28, 2014 okey. i found a solution. it will be okey for me in the first game.sooo....this.game.physics.arcade.collide(this.game.player.sprite, this.platform5group, function(obj1, platform){ obj1.x += platform.deltaX; }, null, this)not too complicated Link to comment Share on other sites More sharing options...
Recommended Posts