Jump to content
This forum will be closing down. Please move to the respective dedicated project forums.

help me


danielpuentes123
 Share

Recommended Posts

Hola, quiero hacer un juego tipo Space Invaders y todo lo que necesito es que mis enemigos disparen y no: /
 

var fondojuego;
var nave;
var cursores;
var balas;
var tiempoBala = 0;
var botonDisparo;

var enemigos;

var Juego = {

    preload: function(){
        //FONDO
        juego.load.image('fondo', 'img/space.png');

        //player
        juego.load.image('personaje', 'img/nave.png');

        //laser(proyectil)
        juego.load.image('laser','img/laser.png');

        //enemigo
        juego.load.image('enemigo','img/pajaro2.png');

        //bala enemiga
        juego.load.image('enemyBullet', 'img/enemy-bullet.png');
    },

    create: function(){
        //FONDO
        fondojuego = juego.add.tileSprite(0, 0, 370, 550, 'fondo');

        //player nave (anchor es el punto de apoyo, lo centramos)
        nave = juego.add.sprite(juego.width/2, 500, 'personaje');
        nave.anchor.setTo(0.5);

        //controles
        cursores = juego.input.keyboard.createCursorKeys();

        //boton para disparar
        botonDisparo = juego.input.keyboard.addKey(Phaser.Keyboard.SPACEBAR);

        //grupo de balas
        balas = juego.add.group();
        balas.enableBody = true;
        balas.physicsBodyType = Phaser.Physics.ARCADE;
        balas.createMultiple(20, 'laser');
        balas.setAll('anchor.x', 0.5);
        balas.setAll('anchor.y', 1);
        balas.setAll('outOfBoundsKill', true);
        balas.setAll('checkWorldBounds', true);

        //grupo de balas de los enemigos
        enemigos = juego.add.group();
        enemigos.enableBody = true;
        enemigos.physicsBodyType = Phaser.Physics.ARCADE;

        setupBullets: function () {
        this.enemyBulletPool = this.add.group();
        this.enemyBulletPool.enableBody = true;
        this.enemyBulletPool.physicsBodyType = Phaser.Physics.ARCADE;
        this.enemyBulletPool.createMultiple(100, 'enemyBullet');
        this.enemyBulletPool.setAll('anchor.x', 0.5);
        this.enemyBulletPool.setAll('anchor.y', 0.5);
        this.enemyBulletPool.setAll('outOfBoundsKill', true);
        this.enemyBulletPool.setAll('checkWorldBounds', true);
        this.enemyBulletPool.setAll('reward', 0, false, false, 0, true);
        // Add an empty sprite group into our game
        this.bulletPool = this.add.group();

        //crear enemigos y mostrarlos
        for(var y = 0; y < 6; y++)
        {
            for(var x = 0; x < 7; x++)
            {
                var enemigo = enemigos.create(x*40, y*20, 'enemigo');
                enemigo.anchor.setTo(0.5);
            }
        }
        enemigos.x = 50;
        enemigos.y = 30;

        //movimiento de bordes y de descender
        var animacion = juego.add.tween(enemigos).to({x:100}, 1000, Phaser.Easing.Linear.None, true, 0, 1000, true);
        animacion.onLoop.add(descender, this);
    },

    update: function(){
        //movimiento personaje
        if(cursores.right.isDown)
        {
            nave.position.x += 3;
        }
        else if(cursores.left.isDown)
        {
            nave.position.x -= 3;
        }
        //disparo
        var bala;
        if (botonDisparo.isDown)
        {
            if(juego.time.now > tiempoBala)
            {
                bala = balas.getFirstExists(false);
            }
            if (bala)
            {
                bala.reset(nave.x, nave.y);
                bala.body.velocity.y = -300;
                tiempoBala = juego.time.now + 100;
            }
        }

        //balas enemigos :v
        enemyFire: function() {
        this.shooterPool.forEachAlive(function (enemy) {
        if (this.time.now > enemy.nextShotAt && this.enemyBulletPool.countDead() > 0) {
        var bullet = this.enemyBulletPool.getFirstExists(false);
        bullet.reset(enemy.x, enemy.y);
        this.physics.arcade.moveToObject(
        bullet, this.player, BasicGame.ENEMY_BULLET_VELOCITY
        );
        enemy.nextShotAt = this.time.now + BasicGame.SHOOTER_SHOT_DELAY;
        }
        }, this);
        },
    },

};
//la funcion descender hace que bajen poco a poco
function descender(){
    enemigos.y += 10;
}

juego.state.add('principal', estadoPrincipal);
juego.state.start('principal');

 

Link to comment
Share on other sites

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...