Jump to content

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...