我希望我能够得到一些帮助,解决我现在遇到的问题。Phaser P2碰撞杀死碰撞精灵
基本上我有一些子弹,然后我有一群敌人随速度移动。敌人有不同的精灵,基本上我想为每个精灵类型分配一个值。例如,如果我说如果生成一颗钻石并与子弹相撞就会得到10点,但这种奇怪的行为是在它发生碰撞时发生的,因为屏幕上的所有敌人都会给予10点并且它们全部被破坏,而不仅仅是唯一的那个。
此外,如果10点精灵不在屏幕上,没有给出的点是正常的。
请在下面找到我的代码,我将不胜感激任何帮助。谢谢。
//here is my bullets group
createBullets: function(){
//Bullets
this.bullets = this.add.group();
this.bullets.enableBody = true;
this.bullets.physicsBodyType = Phaser.Physics.P2JS;
this.bullets.createMultiple(500, 'bullet', 0, false);
this.bullets.setAll('anchor.x', 0.5);
this.bullets.setAll('anchor.y', 0.5);
this.bullets.setAll('outOfBoundsKill', true);
this.bullets.setAll('checkWorldBounds', true);
},
///here are my enemies
addOneFigura: function(x, y) {
this.figuras = this.add.group();
//these are sprites
this.figuritas = ["figura1","figura2","figura3","figura4","figura5","figura6"];
this.figurita = this.figuritas[Math.floor(Math.random()*6)];
this.figura = this.add.sprite(x,y,this.figurita);
this.figuras.add(this.figura);
this.physics.p2.enable(this.figura, false);
this.figura.body.velocity.y = 75;
this.figura.checkWorldBounds = true;
this.figura.outOfBoundsKill = true;
this.figura.body.setCollisionGroup(this.figurasCG);
this.figura.body.collides(this.bulletsCG, this.collisionBulletMatch, this);
},
//and lastly this is my collision function
collisionBulletMatch: function(figurita, figuritapega) {
if (this.figurita != this.figuritapega){
this.score += 10;
this.scoreText.text = this.score;
this.resetFigura();
}
}
所以基本上,当他们碰撞了整个figuras
组中消失,而不只是一个碰撞。
你的'resetFigura'函数是什么样的? –
看起来像那样:resetFigura:function(figura){ this.figura.kill(this.figura); },谢谢你的回复 – Rafahc