Multiplayer tutorial 3: Pong

2

Index

Taggé

Statistiques

11,245 visites, 18,635 vues

Outils

Partager

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 21 Dec, 2014. Last updated 25 Feb, 2019

Grupo Host

El anfitrión es responsable de ejecutar realmente el juego. Sync Ojbect hace lo mejor para mantener a los peer informados. El anfitrión se encarga de la lógica del juego, por lo que los eventos Host son un poco más complicados que el de los Peers.

Primero que todo, cuando somos el anfitrión estamos esperando a que algún otro jugador se una. Por lo tanto la primera vez que se ejecuta On peer connected, podemos comenzar el juego. Cuando un peer se conecta primero creamos una paleta para el a la derecha de la pantalla y es asociado con la unión del peer. El juego debe decir "Get ready...", espera 3 segundos y dice "Go!" por un segundo, entonces se muestra la puntuación (que es en el estado de juego "started"). Cuando el juego inicia podemos también iniciar activar para el movimiento bullet y establecer un angulo aleatorio. Recuerda que solo actualmente solo el anfitrión mueve el objeto; Sync object lo sigue y actualiza esto para los peers y el comportamiento debe únicamente estar activado para el anfitrión, ya que de lo contrario esto podría crear un conflicto con Sync Object en el peer.

El host usa una función para establecer el estado del juego. Esto es debido a un simple cambio en la variable GameState afecta al host y el peer nunca sabrá. Esta función nos permite a ambos cambiar la variable y enviar un mensaje al peer indicando que el estado del juego ha cambiado. El peer recibe esto su propia variable GameState. Esto mantiene la variable actualizada para todos en el juego.

Cada variable peerid de las paletas establece el ID para el jugador correspondiente y podemos usar esto para tomar el objeto para jugadores individuales. Ya que esto es un juego de 2 jugadores, el peer ID es o bien el MyID y es nuestra propia paleta, o es diferente y es la paleta del otro jugador. Tenemos que mover la paleta de el otro jugador para donde el lo tiene, así podemos tomar la paleta y establecer su valor de entrada "y". La última entrada para el peer se recupera con la expresión PeerState.

Solo el anfitrión se encarga de la lógica en la jugabilidad, como el manejo de colisiones. En este caso el anfitrión es responsable del rebote de la bola en las paletas; esto pasa automáticamente porque las paletas son solidas y el comportamiento Bullet esta ajustado para rebotar con sólidos (recuerda que el peer tiene el comportamiento Bullet deshabilitado por lo que esto solo sucederá con el anfitrión). Cada vez que rebota podemos también agregar a esto velocidad para que el juego se vaya haciendo más difícil.

Los eventos 29 y 30 dan seguimiento a la puntuación. Si la bola sale fuera de la pantalla a la izquierda (X <0), agrega 1 a la puntuación del peer (el jugador de la derecha), y reinicia la bola. Si la vola va a la derecha de la pantalla (X > Layout Width), agrega 1 a la puntuación del anfitrión (el jugador de la izquierda), y reinicia la bola.

Esto es todo para la especificación de los eventos del anfitrión.

  • 0 Comments

Want to leave a comment? Login or Register an account!