Estoy jugando con PyGame.
Ahora estoy tratando de implementar un clon QIX .
Tengo mi bucle de juego y puedo mover el jugador (cursor) en la pantalla.
En QIX, el movimiento del jugador deja un rastro (cola) en la pantalla, creando una polilínea.
Si la polilínea con los límites de la pantalla crea un polígono, el área se llena.
¿Cómo puedo lograr este comportamiento?
¿Cómo almacenar la cola en la memoria?
¿Cómo detectar cuándo se crea una forma cerrada que se debe llenar?
No necesito una solución de trabajo exacta, algunos indicadores, algunos nombres serían geniales.
Al principio, solo está el borde gris, donde el jugador puede mover el cursor.
- Primer escenario:
El usuario mueve su cursor desde el punto A hasta el punto B, dibujando la multilínea roja hasta el punto C. En este punto, debido a que cruza el borde, el punto A debe conectarse automáticamente con el punto C, creando un polígono, que debe rellenarse ( esas cosas naranjas en mi dibujo). Llenar el polígono es muy simple en PyGame, porque proporciono la secuencia de puntos, y PyGame se preocupa del resto.
- Segundo escenario:
El usuario se mueve en el borde hasta el punto D, desde donde dibuja una línea hasta el punto E. Debido a que está cruzando la línea del polígono anterior, y con sus líneas y el borde se puede crear otro polígono, también debe rellenarse. (el verde).
- Tercer escenario:
El jugador se mueve más allá en el polígono (puede moverse en líneas poligonales existentes) y dibuja una línea desde el punto G hasta el punto F. Aquí nuevamente, debido al borde y las líneas existentes, se debe llenar otro polígono (el azul) .