Bullet
#HelloGameDev #HelloErmine #HelloWorld2021
āļāļēāļĢāļāļģ Bullet
Step 1
āļāļģāļĢāļđāļāļāļĢāļ°āļŠāļļāļāļāļāļāđāļĢāļēāđāļāđāļēāļĄāļēāđāļ Preload function āļāđāļāļ
preload(){
this.load.image('bullet', './path');
}
āļāļēāļāļāļąāđāļāļŠāļĢāđāļēāļ Group āļāļāļ bullet āļāļāļāđāļĢāļēāđāļ Create function āđāļāļĒāđāļāđāļāļģāļŠāļąāđāļ
//āļŠāļĢāđāļēāļāļāļĨāļļāđāļĄāļāļāļāļĨāļđāļāļāļĢāļ°āļŠāļļāļāļāļķāđāļāļĄāļēāļāļ·āđāļ bulletGroup
bulletGroup = this.physics.add.group()
Step 2
āđāļāđ Timer Event āļŠāļĢāđāļēāļ loop āļāļāļāļāļĢāļ°āļŠāļļāļāļāļķāđāļāļĄāļē āđāļāļĒāđāļŦāđāļĄāļąāļāļāļĨāđāļāļĒāļāļāļāļĄāļēāļāļēāļāđāļāļ x āđāļĨāļ°āđāļāļ y āļāļāļāđāļāļĨāđāļĒāļāļĢāđāđāļĢāļē āļāļąāļāļĢāļđāļāđāļāļāđāļāđāļāļāđāļāđāļāļāļĩāđ
bulletEvent = this.time.addEvent({
delay: 1000,
callback: function(){
//āļŠāļĢāđāļēāļāļāļĢāļ°āļŠāļļāļāļāļķāđāļāļĄāļēāļāļ·āđāļ bullet
bullet = this.physics.add.image(player.x, player.y-50,'bullet');
.setScale(0.2) //āļāļģāļŦāļāļāļāļāļēāļ
.setSize(0.2); //āļāļģāļŦāļāļāļāļģāđāļŦāļāđāļ Hitbox
//āđāļāļīāđāļĄ bullet āļĨāļāđāļ bulletGroup
bulletGroup.add(bullet);
//āļāļģāļŦāļāļāļāļ§āļēāļĄāđāļĢāđāļ§āđāļāļĨāļĩāđāļāļāļāļĩāđāļāļāļ bulletGroup
bulletGroup.setVelocityY(-200);
},
callbackScope: this,
loop: true,
pause: false
});
Step 3
āđāļĄāļ·āđāļāļāļĢāļ°āļŠāļļāļāļāļđāļāļĒāļīāļāļāļāļāđāļ āđāļĢāļēāļāđāļāļāļāļģāļĨāļēāļĒāļĄāļąāļ āđāļāļ·āđāļāđāļĄāđāđāļŦāđāļāļąāļ§ Phaser āļāļģāļāļēāļĢāđāļāđāļ Stack āļāļēāļāļāļēāļĢāļ§āļ loop āđāļĄāđāļĢāļđāđāļāļ āđāļāļĒāļāļąāļ§āļāļĒāđāļēāļāļāđāļēāļāļĨāđāļēāļāļāļ°āļāļģāļĨāļēāļĒāļāļĢāļ°āļŠāļļāļāļāļąāļāđāļāļĄāļąāļāļī āļāđāļ§āļĒāļāļģāļŠāļąāđāļ .destroy();
āđāļĄāļ·āđāļāļāļĢāļ°āļŠāļļāļāđāļāļīāļāļāļēāļāđāļāđāļāđāļāļ y āļĄāļēāļāļāļ§āđāļē 50
update(delta, time){
//āļāļģāļĨāļēāļĒ bullet āļāļĩāđāļāļĒāļđāđāđāļ bulletGroup āļāļĩāđāļĄāļĩāļāđāļē y āļĄāļēāļāļāļ§āđāļē 350
for (let i = 0; i < bulletGroup.getChildren().length; i++) {
if (bulletGroup.getChildren()[i].y <= -50) {
bulletGroup.getChildren()[i].destroy();
}
}
}
āļāļēāļĢāđāļāļīāļ monster, bullet āļŦāļĢāļ·āļ object āļāļ°āđāļĢāļāđāļāļēāļĄāļāļĩāđāļĄāļĩāļāļēāļĢāđāļāļīāļāļāļķāđāļāļĄāļēāđāļŦāļĄāđāđāļĢāļ·āđāļāļĒ āđ āļāļ°āļāđāļāļāļĄāļĩāļāļēāļĢāļāļģāļĨāļēāļĒāļāļīāđāļāļāļąāļāļāļĩāđāļĄāļ·āđāļāđāļŠāļĢāđāļāļāļēāļāļāļēāļĢ interaction āļāļąāļ
āđāļāļ·āđāļāļāļāļēāļāļāļēāļĢāđāļāļīāļāđāļŦāļĄāđāđāļĢāļ·āđāļāļĒ āđ āđāļĨāļ°āđāļĄāđāļāļģāļĨāļēāļĒāļĄāļąāļ āļāļąāļ§ Phaser āļāļ°āļāļģāļāļēāļĢāđāļāđāļ Stack āđāļāđāļĢāļ·āđāļāļĒ āđ āļāļēāļāļāļģāđāļŦāđāļāļēāļĢāļāļģāļāļēāļāļāļāļāļāļąāļ§āļāļĢāļ°āļĄāļ§āļĨāļāļĨāļāđāļēāļ āđ āļŦāļĢāļ·āļāļāļēāļĢāđāļŠāļāļāļāļĨāļāđāļēāļ āđ āļĄāļĩāļāļēāļĢāļāļīāļāļāļĨāļēāļāļŦāļĢāļ·āļāļāļīāļāđāļāļĨāļāđāļ āļŦāļĢāļ·āļāļāļĩāđāđāļĢāļēāđāļĢāļĩāļĒāļāļāļąāļāļāđāļēāļĒ āđ āļ§āđāļēāļāļēāļāļāļ°āļāļģāđāļŦāđāđāļāļīāļ bug āļŦāļĢāļ·āļāđāļĄāđāļāđāđāļāļīāļāļāļēāļāļēāļĢ lag āļāļąāđāļāđāļāļ
Result

āļŠāļĢāļļāļāļ āļēāļāļĢāļ§āļĄāđāļāđāļ Bullet
preload(){
this.load.image('bullet', './path');
}
create(){
bulletGroup = this.physics.add.group();
bulletEvent = this.time.addEvent({
delay: 1000,
callback: function(){
bullet = this.physics.add.image(player.x, player.y-50,'bullet');
.setScale(0.2)
.setSize(0.2);
bulletGroup.add(bullet);
bulletGroup.setVelocityY(-200);
},
callbackScope: this,
loop: true,
pause: false
});
}
update(delta, time){
for (let i = 0; i < bulletGroup.getChildren().length; i++) {
if (bulletGroup.getChildren()[i].y <= -50) {
bulletGroup.getChildren()[i].destroy();
}
}
}
Last updated
Was this helpful?