Archivo de la etiqueta: colisiones

Paredes y colisiones en nuestro clon de Tetris

Vamos a dar más cuerpo a nuestro clon de Tetris, añadiendo los siguientes elementos:

  • Paredes del juego, bien visibles en la pantalla, para saber en todo momento dónde están los límites
  • Colisiones de las piezas con esas paredes. Además, si la colisión es desde arriba, la pieza queda fija en su posición y da paso a la siguiente.
  • Cuando pulsemos la flecha hacia abajo y mientras no pulsemos otra tecla, la pieza baja más rápido.

Con esto, habríamos cubierto estos puntos del plan que, realmente, cubren la parte más difícil de toda la programación:

  1. Dibujar una pieza (básica) y programar la rotación: lo vimos hace tres semanas
  2. Programar la gravedad y el resto de movimientos: lo vimos hace dos semanas
  3. Colisiones de la pieza con otras piezas y el borde de la pantalla. El artículo de hoy
  4. Haciendo líneas y retocando la mecánica anterior
  5. Puntuaciones y niveles
  6. Borde, marcador, tabla de puntuaciones. Con este artículo cubriremos también el borde, entendiendo borde como un marco visible
  7. Refinando los gráficos de las piezas

Una vez lo tengamos hecho y para poder jugar, sólo tendremos que programar la mecánica de las líneas. El resto de artículos añaden ese “acabado” que hace posible competir entre varios jugadores, y algo de estética o retoques de código. Dentro de poco, en cualquier caso, habremos superado lo realmente importante del juego y podremos jugar partidas “infinitas”.

Os recomiendo qué debéis leer si llegáis a PItando en este momento, para poder aprovechar este artículo:

  1. La serie de Python, en general.
  2. La serie de Pygame, en particular.

¡Vamos a por ello!

Sigue leyendo Paredes y colisiones en nuestro clon de Tetris

Movimiento y colisiones en Pygame

Gran parte de los videojuegos se basan en un funcionamiento básico en el que un objeto interactúa con otro en la pantalla. En esos videojuegos, la gracia está en evitar a otros objetos, o por el contrario en buscar esos otros objetos. Piensa en Pac-Man, o el comecocos de toda la vida: el protagonista debe comer todas las fichas de un laberinto, mientras los fantasmas le persiguen. Las paredes no se pueden atravesar, y si los fantasmas tocan a nuestro héroe, éste muere. Pero sin embargo, si el comecocos se come una ficha especial, la mecánica es la inversa: se puede comer a los fantasmas enviándolos a una especie de cárcel.

De esta forma, tenemos:

  • Varios objetos moviéndose: un comecocos y cuatro fantasmas.
  • Un objeto especial (el comecocos) debe ir colisionando con cuantos objetos inmóviles pueda (fichas), pero no puede atravesar los límites que definen el laberinto (las paredes).
  • Si los fantasmas chocan con el comecocos, en función del estado de este último, ocurren eventos especiales (muerte del comecocos o captura del fantasma).

Todo en este tipo de juegos se basa en dos mecanismos: el movimiento y la detección de colisiones. Vamos a examinar el funcionamiento de estos dos mecanismos con Pygame.

Sigue leyendo Movimiento y colisiones en Pygame