why does my game stop using Phaser?

0

Hello Developers , I was developing the Space Invaders game in a library called Pherse.js (JavaScript). When two objects collide (bullet) vs (enemy) my screen freezes, led I leave the code in JS:

JS:

var fondoJuego;
var nave;
var TecladoInputs;
var cursores;
var enemigos;

var balas;
var tiempoBala = 0;
var botonDisparo;
var juego = new Phaser.Game(370 ,550, Phaser.CANVAS, 'bloque_juego2');

var estadoPrincipal = {

preload: function(){
    juego.load.image('fondo2','img/fondito2.jpeg');
    juego.load.image('personaje','img/nave.png');
    juego.load.image('laser','img/laser.png');
    juego.load.image('enemigo','img/enemigos_ovnis.png');

},

create: function(){
    fondoJuego = juego.add.tileSprite(0, 0, 370, 550, 'fondo2');
    nave = juego.add.sprite(juego.width/2,500,'personaje');
    nave.anchor.setTo(0.5);

    //cursores = juego.input.Keyboard.createCursorKeys();
    botonDisparo = juego.input.keyboard.addKey(Phaser.Keyboard.SPACEBAR);

    juego.physics.startSystem(Phaser.Physics.ARCADE);
    juego.physics.arcade.enable(nave);
    nave.body.collideWorldBounds = true;

    TecladoInputs = juego.input.keyboard.createCursorKeys();

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


    enemigos = juego.add.group();
    enemigos.enableBody = true;
    enemigos.physicsBodyType = Phaser.Physics.ARCADE;

    for(var y = 0; y < 10 ; y++){

        for(var x =0; x < 7; x++) {

            var enemigo = enemigos.create(x*40, y*20, 'enemigo');
            enemigo.anchor.setTo(0.5);
        }
    }
    enemigos.x = 30;
    enemigos.y = 30;
    var animacion = juego.add.tween(enemigos).to({x:100}, 1000,
        Phaser.Easing.Linear.None,true,0,1000,true);
    //var animacion2 = juego.add.tween(enemigos).to({y:500}, 8000,
    //  Phaser.Easing.Linear.None,true,0,1000,true);


    animacion.onLoop.add(descender, this);





},


update: function(){
    //fondoJuego.tilePosition.y +=3;

    ///////////////////////////////////////izquierda
    if (TecladoInputs.left.isDown){
        nave.position.x +=-3;
        fondoJuego.tilePosition.x +=1;

    }
    ////////////////////////////////////////Derecha
    if (TecladoInputs.right.isDown){
        nave.position.x +=3;
        fondoJuego.tilePosition.x +=-1;
    }
    /////////////////////////////////Abajo
    if (TecladoInputs.down.isDown){
        nave.position.y +=3;
    }
    /////////////////////////////////Arriba
    if (TecladoInputs.up.isDown){
        nave.position.y +=-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 = -350;
            tiempoBala = juego.time.now +200;
        }
    }
    juego.physics.arcade.overlap(balas, enemigos, colision, null, this);

}
};

 function colision(bala, enemigos){
bala.kill();
enemigo.kill();

} 


function descender(){
alert("kpdo");
enemigos.y += 100;
}

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

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="phaser.js"></script>
<script src="principal2.js"></script>
<title>Juegito</title>
</head>
<body>
<div id="bloque_juego2">

</div>
</body>
</html>

I leave the full file in Google Drive: link

    
asked by Hola Soy Anza 14.04.2017 в 20:28
source

0 answers