Sto giocando con PyGame.
Ora sto cercando di implementare un clone QIX .
Ho il mio loop di gioco e posso spostare il giocatore (cursore) sullo schermo.
In QIX, il movimento del giocatore lascia una traccia (coda) sullo schermo, creando una polilinea.
Se la polilinea con i bordi dello schermo crea un poligono, l'area viene riempita.
Come posso realizzare questo comportamento?
Come conservare la coda in memoria?
Come rilevare quando crea una forma chiusa che dovrebbe essere riempita?
Non ho bisogno di una soluzione di lavoro esatta, alcuni puntatori, i nomi degli algo sarebbero fantastici.
All'inizio, c'è solo il bordo grigio, in cui il giocatore può muovere il cursore.
- Primo scenario:
L'utente sposta il cursore dal punto A al punto B, disegnando la multilinea rossa fino al punto C. A questo punto, a causa dell'attraversamento del bordo, il punto A dovrebbe essere collegato automaticamente al punto C, creando un poligono, che dovrebbe essere riempito ( quella roba arancione sul mio disegno). Riempire il poligono è dannatamente semplice in PyGame, perché fornisco la sequenza di punti e PyGame si prende cura di tutto il resto.
- Secondo scenario:
L'utente si sposta sul bordo fino al punto D, da dove disegna una linea al punto E. Poiché sta attraversando la linea del poligono precedente, e con le sue linee e il bordo può essere creato un altro poligono, dovrebbe essere riempito anche. (quello verde).
- Terzo scenario:
Il giocatore si sposta ulteriormente sul poligono (può muoversi su linee poligonali esistenti) e disegna una linea dal punto G al punto F. Anche in questo caso, a causa del bordo e delle linee esistenti, un altro poligono dovrebbe essere riempito (quello blu) .