Pergunta

Estou fazendo um clone de tetris em C# com XNA e não tenho certeza de como realmente implementar os blocos.

Eu não acho que fazer as formas como imagens funcionarão (porque as peças são removidas quando as linhas são formadas), então eu tenho blocos para compensar as peças como este.

Infelizmente, não sei como definir os blocos para fazer as peças, nem sei como manipulá -las para fazê -las girar, etc.

EDIT: Eu também precisaria de assistência para aprender a fazer a grade do Tetris também.

Foi útil?

Solução

Eu não criei o Tetris antes, mas depois de pensar, acredito que usaria uma matriz simples para criar minhas peças. Por exemplo, todo o seu quadro de jogos seria uma grande matriz. Um subconjunto dessa matriz, digamos, um bloco 4x4, seria uma peça de jogo. Quais partes desse bloco 4x4 seriam preenchidas seria determinado por qual peça específica você deseja criar. Cada parte da matriz pode ter uma bandeira booleana que indicaria se estiver preenchido ou não. Essa é uma visão muito simplista, mas acho que é uma solução viável.

Outras dicas

Use uma matriz booleana para modelar o estado da tela. Cada peça é outra matriz booleana menor.

Girar uma peça é tão simples quanto brincar com as coordenadas um pouco (deixei isso para você).

Sobre como renderizar, basta desenhar um ladrilho para cada valor verdadeiro em sua matriz ored com a peça de queda atual mudou e girada.

Para os blocos, eu sugeriria fortemente trabalhar em 3D. Você ainda pode fazer com que o jogo pareça 2D bloqueando a câmera etc., mas você se beneficiará muito ao trabalhar em gráficos vetoriais. Seus blocos serão cubos simples (planos ou com alguma profundidade) que você gira e se move pela tela.

Para a grade, veja as respostas @fortran e @aaron, uma matriz booleana fará o truque.

Talvez este link para Coding4fun vai ajudar. Está em alemão, mas você deve conseguir o código -fonte e dar uma olhada em como o problema é resolvido aqui.

Só para ter certeza, aqui o Link para download direto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top