Estou brincando com o PyGame.
Agora estou tentando implementar um clone do QIX .
Eu tenho meu loop de jogo e posso mover o jogador (cursor) na tela.
No QIX, o movimento do player deixa um rastro (cauda) na tela, criando uma polilinha.
Se a polilinha com os limites da tela criar um polígono, a área será preenchida.
Como posso realizar esse comportamento?
Como armazenar a cauda na memória?
Como detectar quando ele cria uma forma fechada que deve ser preenchida?
Eu não preciso de uma solução exata de trabalho, alguns ponteiros, nomes de algo seria legal.
No início, existe apenas a borda cinza, onde o jogador pode mover o cursor.
- Primeiro cenário:
O usuário move o cursor do ponto A até o ponto B, desenhando a multilinha vermelha até o ponto C. Nesse ponto, por cruzar a borda, o ponto A deve ser conectado automaticamente ao ponto C, criando um polígono, que deve ser preenchido ( aquela coisa laranja no meu desenho). Preencher o polígono é muito simples no PyGame, porque eu forneço a sequência de pontos e o PyGame se importa com o resto.
- Segundo cenário:
O usuário se move na borda para o ponto D, de onde ele desenha uma linha para o ponto E. Como ele está cruzando a linha do polígono anterior e, com suas linhas e a borda, outro polígono pode ser criado, ele também deve ser preenchido. (o verde).
- Terceiro cenário:
O jogador avança no polígono (ele pode se mover nas linhas poligonais existentes) e desenha uma linha do ponto G ao ponto F. Aqui, novamente, devido à borda e às linhas existentes, outro polígono deve ser preenchido (o azul) .