Saya memiliki kotak gameboard yang tingginya 20 baris dan lebar 10 kolom dengan titik asal (0,0) berada di sudut kiri atas. Saya memiliki tetrimino dalam permainan, yang terdiri dari empat blok. Saya memiliki lokasi x, y dari setiap blok relatif terhadap asal sudut kiri atas. Saya juga memiliki posisi pivot, titik di mana saya ingin memutar yang relatif terhadap asal sudut kiri atas.
Setiap blok memiliki posisi bilangan bulat dalam kotak gameboard dan karenanya pivot memiliki posisi fraksional di antara blok misalnya (10,5,10,5)
Pertanyaan saya adalah: Formula manakah yang dapat saya gunakan untuk memutar setiap blok di sekitar pivot?
Saya sudah melihat pertanyaan dan jawaban serupa yang sudah ada tetapi tidak bisa menemukan jawaban yang bisa saya peroleh.
Bantuan akan sangat dihargai.
Jawaban:
Logika rotasi Tetris standar disebut Sistem Super Rotasi. SRS cocok untuk permainan Tetris tingkat tinggi, memungkinkan banyak variasi pada tendangan dinding dan t-spin.
Ada varian umum lainnya yang disebut ARS, yang digunakan dalam game Tetris Arika : The Grand Master .
sumber
Rumus umum untuk memutar sekitar asal adalah
Untuk 90 derajat menjadi
Jadi, pertama-tama dapatkan koordinat pusat batu bata relatif ke titik pivot:
Kemudian putar di sekitar titik pivot:
Dan kemudian tambahkan koordinat pivot ke titik yang diputar:
Tetapi jika Anda perlu memutar dengan kelipatan 90 derajat, Anda dapat menyimpan empat set posisi bata untuk setiap orientasi dan beralih di antara mereka bukannya benar-benar berputar.
sumber
Anda dapat memutar semua cincin persegi (a-through-h dengan 2 posisi, A-through-P dengan 4 posisi, dan seterusnya) di sekitar blok pivot:
sumber
Ikuti formula rotasi 2D standar dalam Matematika yang harus Anda lakukan.
http://en.wikipedia.org/wiki/Rotation_(mathematics)#Matrix_algebra
sumber