Eu tenho uma grade de tabuleiro de jogo com 20 linhas de altura e 10 colunas de largura, com a origem (0,0) no canto superior esquerdo. Eu tenho um tetrimino em jogo, que é composto por quatro blocos. Eu tenho a localização x, y de cada bloco em relação à origem do canto superior esquerdo. Também tenho a posição do pivô, o ponto em torno do qual desejo girar que é relativo à origem do canto superior esquerdo.
Cada bloco tem uma posição inteira em um quadrado de placa de jogo e, portanto, o pivô tem uma posição fracionária entre os blocos, por exemplo (10.5,10.5)
Minha pergunta é: Qual fórmula posso usar para girar cada bloco ao redor do pivô?
Eu já examinei perguntas e respostas semelhantes existentes, mas não consegui encontrar uma resposta que pudesse começar a trabalhar.
Ajuda seria muito apreciada.
Respostas:
A lógica de rotação padrão do Tetris é chamada de Super Rotation System. O SRS é adequado para o jogo de alto nível do Tetris, permitindo muitas variações de chutes na parede e giros em t.
Existe uma outra variante comum chamada ARS, que foi usada nos jogos Tetris: The Grand Master de Arika .
fonte
A fórmula geral para girar em torno da origem é
Por 90 graus, torna-se
Portanto, obtenha primeiro as coordenadas do centro do tijolo em relação ao ponto de articulação:
Em seguida, gire-os em torno do ponto de articulação:
E adicione coordenadas dinâmicas ao ponto girado:
Mas se você precisar girar múltiplos de 90 graus, poderá armazenar quatro conjuntos de posições de tijolos para cada orientação e alternar entre elas em vez de realmente girar.
fonte
Você pode girar todos os anéis quadrados (A a H por 2 posições, A a P por 4 posições e assim por diante) em torno desse bloco de articulação:
fonte
Siga as fórmulas padrão de rotação 2D em Matemática, você deve fazer o seu truque.
http://en.wikipedia.org/wiki/Rotation_(mathematics)#Matrix_algebra
fonte