Ich habe ein Spielbrettraster, das 20 Zeilen hoch und 10 Spalten breit ist, wobei sich der Ursprung (0,0) in der oberen linken Ecke befindet. Ich habe einen Tetrimino im Spiel, der aus vier Blöcken besteht. Ich habe die x, y-Position jedes Blocks relativ zum Ursprung in der linken oberen Ecke. Ich habe auch die Position des Pivots, den Punkt, um den ich drehen möchte, relativ zum Ursprung der linken oberen Ecke.
Jeder Block hat eine ganzzahlige Position in einem Spielfeldquadrat und somit hat der Drehpunkt eine gebrochene Position zwischen Blöcken, z. B. (10.5,10.5).
Meine Frage ist: Mit welcher Formel kann ich jeden Block um den Drehpunkt drehen?
Ich habe mir bereits ähnliche Fragen und Antworten angesehen, konnte aber keine Antwort finden, die ich zur Arbeit bringen könnte.
Hilfe wäre sehr dankbar.
Antworten:
Die Standard-Tetris-Rotationslogik heißt Super Rotation System. SRS eignet sich für anspruchsvolles Tetris-Spiel und ermöglicht viele Variationen von Wall Kicks und T-Spins.
Es gibt eine weitere verbreitete Variante namens ARS, die in Arikas Tetris verwendet wurde: The Grand Master Games.
quelle
Die allgemeine Formel für das Drehen um den Ursprung lautet
Für 90 Grad wird es
Holen Sie sich also zunächst die Mittelpunktskoordinaten des Ziegels relativ zum Drehpunkt:
Dann drehen Sie sie um den Drehpunkt:
Fügen Sie dann dem gedrehten Punkt Pivot-Koordinaten hinzu:
Wenn Sie jedoch um ein Vielfaches von 90 Grad drehen müssen, können Sie vier Sätze von Ziegelpositionen für jede Ausrichtung speichern und zwischen diesen wechseln, anstatt sie tatsächlich zu drehen.
quelle
Sie können alle quadratischen Ringe (a bis h um 2 Positionen, A bis P um 4 Positionen usw.) um diesen Drehblock drehen:
quelle
Befolgen Sie die Standard-2D-Rotationsformeln in Mathematik, die Ihren Trick machen sollten.
http://en.wikipedia.org/wiki/Rotation_(mathematics)#Matrix_algebra
quelle