Hi all,
Could anyone help me…
After running action in ‘pointerdown’ event (include the collide), I want to change the image follower of curve and also change the object1, object2 in collide .
here my full code,
class Scene extends Phaser.Scene {
constructor() { super("playGame") } preload () { this.load.image("bg", "assets/background.jpg"); this.load.image("dubaiitem", "assets/dubai.png"); this.load.image("nyitem", "assets/new-york.png"); this.load.image("taipeiitem", "assets/taipei.png"); this.load.image("parisitem", "assets/paris.png"); this.load.image("target", "assets/globe.png"); this.load.image("dubai", "assets/extra-menthol-dubai.png"); this.load.image("paris", "assets/chill-menthol-paris.png"); this.load.image("ny", "assets/fast-forward-purple-new-york.png"); this.load.image("taipei", "assets/fast-forward-taipei.png"); this.load.image("destroyed", "assets/splatter.png") } create () { //background this.add.image(350,500,'bg') // line this.line = new Phaser.Geom.Line(50,250,650,250); this.graphics = this.add.graphics({ lineStyle: { width: 2, color: 0xffffff } }) this.graphics.strokeLineShape(this.line); //text score and time this.add.text(50, 50, "SCORE", {font:"25px Nunito Sans", fill: "#ffff08"}) this.add.text(50, 80, "得分", {font:"25px Nunito Sans", fill: "#ffff08"}) this.add.text(150, 45, "0", {font:"65px Nunito Sans", fill: "#ffff08"}) this.add.text(500, 50, "TIME", {font:"25px Nunito Sans", fill: "#ffff08"}) this.add.text(500, 80, "倒计时", {font:"25px Nunito Sans", fill: "#ffff08"}) this.add.text(600, 45, "60", {font:"65px Nunito Sans", fill: "#ffff08"}) //sprite globe this.container = this.add.container(game.config.width/2, 1080); this.target = this.add.sprite(0, 0, 'target'); this.dubaiitem = this.add.sprite(this.target.x + (this.target.width / 2) * Math.cos(Phaser.Math.DegToRad( Phaser.Math.Between(0,0) - 90)), this.target.y + (this.target.width /2) * Math.sin(Phaser.Math.DegToRad( Phaser.Math.Between(0,0) - 90)), "dubaiitem" ) this.dubaiitem.setScale(1.5); this.dubaiitem.setAngle(0); this.dubaiitem.setOrigin(0.5,-0.05) this.nyitem = this.add.sprite(this.target.x + (this.target.width / 2) * Math.cos(Phaser.Math.DegToRad( Phaser.Math.Between(45,45) - 90)), this.target.y + (this.target.width /2) * Math.sin(Phaser.Math.DegToRad( Phaser.Math.Between(45,45) - 90)), "nyitem" ) this.nyitem.setScale(1.5); this.nyitem.setAngle(45); this.nyitem.setOrigin(0.5,-0.05) this.taipeiitem = this.add.sprite(this.target.x + (this.target.width / 2) * Math.cos(Phaser.Math.DegToRad( Phaser.Math.Between(90,90) - 90)), this.target.y + (this.target.width /2) * Math.sin(Phaser.Math.DegToRad( Phaser.Math.Between(90,90) - 90)), "taipeiitem" ) this.taipeiitem.setScale(1.5); this.taipeiitem.setAngle(90); this.taipeiitem.setOrigin(0.5,-0.05); this.parisitem = this.add.sprite(this.target.x + (this.target.width / 2) * Math.cos(Phaser.Math.DegToRad( Phaser.Math.Between(135,135) - 90)), this.target.y + (this.target.width /2) * Math.sin(Phaser.Math.DegToRad( Phaser.Math.Between(135,135) - 90)), "parisitem" ) this.parisitem.setScale(1.5); this.parisitem.setAngle(135); this.parisitem.setOrigin(0.5,-0.05); this.dubaiitem2 = this.add.sprite(this.target.x + (this.target.width / 2) * Math.cos(Phaser.Math.DegToRad( Phaser.Math.Between(180,180) - 90)), this.target.y + (this.target.width /2) * Math.sin(Phaser.Math.DegToRad( Phaser.Math.Between(180,180) - 90)), "dubaiitem" ) this.dubaiitem2.setScale(1.5); this.dubaiitem2.setAngle(180); this.dubaiitem2.setOrigin(0.5,-0.05) this.nyitem2 = this.add.sprite(this.target.x + (this.target.width / 2) * Math.cos(Phaser.Math.DegToRad( Phaser.Math.Between(225,225) - 90)), this.target.y + (this.target.width /2) * Math.sin(Phaser.Math.DegToRad( Phaser.Math.Between(225,225) - 90)), "nyitem" ) this.nyitem2.setScale(1.5); this.nyitem2.setAngle(225); this.nyitem2.setOrigin(0.5,-0.05) this.taipeiitem2 = this.add.sprite(this.target.x + (this.target.width / 2) * Math.cos(Phaser.Math.DegToRad( Phaser.Math.Between(270,270) - 90)), this.target.y + (this.target.width /2) * Math.sin(Phaser.Math.DegToRad( Phaser.Math.Between(270,270) - 90)), "taipeiitem" ) this.taipeiitem2.setScale(1.5); this.taipeiitem2.setAngle(270); this.taipeiitem2.setOrigin(0.5,-0.05); this.parisitem2 = this.add.sprite(this.target.x + (this.target.width / 2) * Math.cos(Phaser.Math.DegToRad( Phaser.Math.Between(315,315) - 90)), this.target.y + (this.target.width /2) * Math.sin(Phaser.Math.DegToRad( Phaser.Math.Between(315,315) - 90)), "parisitem" ) this.parisitem2.setScale(1.5); this.parisitem2.setAngle(315); this.parisitem2.setOrigin(0.5,-0.05); this.container.add(this.target); this.container.add(this.dubaiitem); this.container.add(this.nyitem); this.container.add(this.taipeiitem); this.container.add(this.parisitem); this.container.add(this.dubaiitem2); this.container.add(this.nyitem2); this.container.add(this.taipeiitem2); this.container.add(this.parisitem2); this.tweens.add({ targets: this.container, angle: 360, duration: 6000, repeat: -1, }); //path this.curve = new Phaser.Curves.Line(new Phaser.Math.Vector2(50,250), new Phaser.Math.Vector2(550,250)); this.graphics = this.add.graphics(); this.graphics.lineStyle(2, 0xffffff, 1); this.curve.draw(this.graphics); this.dubai = this.add.follower(this.curve, 100, 250, 'dubai'); this.dubai.startFollow({ duration: 5000, yoyo: true, repeat: -1, }) this.input.on('pointerdown', function (pointer) { this.tweens.add({ targets: this.dubai, y: { value: 3000, duration: 1500} }); //collision this.physics.add.existing(this.dubai) this.physics.add.existing(this.dubaiitem) this.physics.add.existing(this.dubaiitem2) this.dubaicol = this.physics.add.collide(this.dubaiitem, this.dubai, this.onCollideHandler, null, this) this.dubaicol2 = this.physics.add.collide(this.dubaiitem2, this.dubai, this.onCollideHandler, null, this) }, this); } onCollideHandler () { console.log('oke') this.destroyed = this.add.sprite(game.config.width/2, 800, "destroyed" ); this.tweens.add({ targets: this.destroyed, y: { value: 3000, duration: 1500} }) } update () { }
}