J'ai une grille de plateau de jeu qui est de 20 lignes de haut et 10 colonnes de large avec l'origine (0,0) dans le coin supérieur gauche. J'ai un tetrimino en jeu, qui est composé de quatre blocs. J'ai l'emplacement x, y de chaque bloc par rapport à l'origine du coin supérieur gauche. J'ai également la position du pivot, le point autour duquel je souhaite tourner qui est relatif à l'origine du coin supérieur gauche.
Chaque bloc a une position entière dans une case de plateau de jeu et donc le pivot a une position fractionnée entre les blocs, par exemple (10.5,10.5)
Ma question est: quelle formule puis-je utiliser pour faire pivoter chaque bloc autour du pivot?
J'ai déjà examiné des questions et réponses similaires existantes, mais je n'ai pas trouvé de réponse que je pourrais mettre au travail.
De l'aide serait très appréciée.
Réponses:
La logique de rotation standard de Tetris est appelée Super Rotation System. SRS est adapté au jeu Tetris de haut niveau, permettant de nombreuses variations sur les coups de pied et les t-spins.
Il existe une autre variante commune appelée ARS, qui a été utilisée dans les jeux Tetris: The Grand Master d' Arika .
la source
La formule générale de rotation autour de l'origine est
Pour 90 degrés, il devient
Donc, obtenez d'abord les coordonnées du centre de la brique par rapport au point de pivot:
Faites-les ensuite pivoter autour du point de pivot:
Et puis ajoutez les coordonnées du pivot au point pivoté:
Mais si vous devez faire pivoter par multiples de 90 degrés, vous pouvez stocker quatre ensembles de positions de briques pour chaque orientation et basculer entre elles au lieu de réellement tourner.
la source
Vous pouvez faire pivoter tous les anneaux carrés (de A à H de 2 positions, de A à P de 4 positions, etc.) autour de ce bloc de pivot:
la source
Suivez les formules de rotation 2D standard en mathématiques devraient faire votre tour.
http://en.wikipedia.org/wiki/Rotation_(mathematics)#Matrix_algebra
la source