I am trying to make my bullet into group
. I am beginner at phaser 3. I got my bullet working from here. I want to make the bullets created be traceable.
There is another problem. After some short tests I found out that there are multiple bullets created. Test 1: I added barriers on the outside of the scene and added collider with the bullet and the barriers, it logged multiple times when triggered. Test 2: When having contact with the enemy, some bullets got reflect and flew the other way. This is related to the question because this can be done by limiting the bullets if there is some way to trace them.
Click here for the full code on replit.
this.input.on('pointerdown', pointer => {
if (ammo > 0) {
charge.setText('CHARGED!');
let speed = 750;
console.log(ammo);
// create bullet
bullet = this.add.image(playerArm.x, playerArm.y, 'bullet');
bullet.setScale(0.5);
bullet.rotation = playerArm.rotation;
this.physics.add.existing(bullet);
group = this.add.group({
defaultKey: 'bullet',
maxSize: 100,
})
// get Vector where to shoot bullet
let vector = new Phaser.Math.Vector2(pointer.x - playerArm.x, pointer.y - playerArm.y);
// set Speed of bullet
vector.setLength(speed * timeSpeed);
// QuickFix to destroy the bullet after 1 Second automatically
setTimeout(() => bullet.destroy(), 1500);
ammo -= 1;
// to shoot in a straightline, just comment the following line in
// bullet.body.setAllowGravity(false);
function killBullet() {
bullet.destroy();
}
bullet.body.setVelocity(vector.x, vector.y);
bullet.body.setAllowGravity(false);
bulletsAlive.setText('Bullets alive' + group.getLength())
this.physics.add.collider(bullet, enemy, hitEnemy, null, this);
this.physics.add.collider(bullet, platforms, killBullet, null, this);
}
});
if (ammo <= 0) {
function onEvent() {
ammo = 15;
}
timedEvent = this.time.delayedCall(2000, onEvent, [], this);
// setTimeout(() => ammo = 15, 1000);
charge.setText('OUT OF CHARGE! CHARGING!');
console.log('reloading');
}
Via Active questions tagged javascript - Stack Overflow https://ift.tt/SHV0ArW
Comments
Post a Comment