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();
        }
    }
}

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?