Home | Clases | Videojuego sencillo con Phaser | Colisiones y movimiento

Colisiones y movimiento


Colisión con las plataformas

Para impedir que el muñeco atraviese las plataformas, debemos añadir un par de variables arriba del todo e incorporar el siguiente código al método update(). Es en este método porque ya ha empezado el juego, con lo que desde ese instante todas las acciones se deben añadir aquí para que cada frame se vayan refrescando.


//Declaración de variables
var cursores, sobrePlataforma; //Para los cursores y la colisión con la plataforma

//Aquí añadimos lo que debe ir actualizándose a medida que transcurre el videojuego
function update() {

//Variable que comprueba si el jugador está chocando con una plataforma
var sobrePlataforma = juego.physics.arcade.collide(jugador, plataformas);

//Permito que las estrellas choquen con las plataformas
juego.physics.arcade.collide(estrellas, plataformas);

}


Si ahora ejecutas el juego verás que el muñeco cae hasta depositarse en el suelo.

Movimiento del jugador

El jugador debe poder moverse de izquierda a derecha y saltar entre plataformas. Para ello utilizaremos las flechas del teclado izquierda, derecha y arriba, respectivamente. Como no queremos que "vuele", solo le dejaremos saltar si esta sobre una plataforma (utilizando la variable sobrePlataforma, que devuelve true si está sobre una de ellas o false en caso contrario). Modifica el método create() para que incluya al final la inicialización de los cursores, y el método update() con el siguiente código:


//Aquí iniciamos diferentes componentes del juego y lo arrancamos
function create() {

/* Resto de código */

//Inicializo el movimiento de los cursores
cursores = juego.input.keyboard.createCursorKeys();

}
//Aquí añadimos lo que debe ir actualizándose a medida que transcurre el videojuego
function update() {

//Variable que comprueba si el jugador está chocando con una plataforma
var sobrePlataforma = juego.physics.arcade.collide(jugador, plataformas);

//Reseteo la velocidad del jugador
jugador.body.velocity.x = 0;

//Mover a la izquierda
if (cursores.left.isDown){

jugador.body.velocity.x = -150;
jugador. animations.play('izquierda');

//Mover a la derecha
} else if (cursores.right.isDown) {

jugador.body.velocity.x = 150;
jugador.animations.play('derecha');
}
//Quedarse quieto
else {

jugador.animations.stop();
jugador.frame = 4;
}

//Saltar (si está tocando una plataforma
if (cursores.up.isDown && jugador.body.touching.down && sobrePlataforma){

jugador.body.velocity.y = -350;

}


}


SI ejecutas el juego, podrás ver cómo el jugador puede moverse hacia los lados (ejecutándose además la animación correspondiente) y saltar. Además, cuando se queda parado, el jugador queda mirando de frente (frame 4 del spritesheet).

Fuente: http://phaser.io

Fecha de publicación: 01/02/2018
Asignaturas: realización de proyectos multimedia interactivosmontaje y mantenimiento de equipos
Temas: phaser video sonido para videojuegos
Utilizamos cookies propias y de terceros para mejorar su experiencia en la navegación. Al seguir navegando entendemos que acepta su uso.
Si lo desea, consulte nuestras políticas de privacidad y cookies
ENTENDIDO
[X] Cerrar

Contacta conmigo


[X] Cerrar

Acceso alumnos