На днях написал тетрис и возникла небольшая проблемка, дело в том что у меня фигуры крутятся на 90 гр., т.е. происходит поворот 2х мерного массива на 90 гр, но это немного не то что надо, в тетрисе как известно имеются разные степени вращения фигур
8
88
8
Например у такой всего две степени вращения это против часовой и обратно, у квадрата вообще их нет. Так вот приведу пример из своей программы :
Все решили подождать оставшийся код.
Попробуй, то, что я юзал в написании своего первого тетриса, а именно - определение массива 5,5 и задание реперной точки (точки поворота).
Предположим у нас есть массив 5х5 :
00000
00000
00Х00 - Х - это реперная точка*
00000
00000
* реперная точка - это точка вокруг которой происходит поворот объекта.
Теперь прикинем варианты:
00100
00100
11Х11 - 1- возможные части объекта
00100
00100
Для них код будет выглядеть след. образом, если:
If (X=3) or (Y=3) then Z:=X; X:=Y; Y:=Z;
След.:
10001
01010
00Х00
01010
10001
If abs(x-R[x]) = abs(y-R[x]) then
If X<>Y then X:=Y
else
Y:=Y-(X DIV 2)???
Вот такой алгоритм :P
Конечно легче всего вертеть квадратную матрицу, но от этого сбивается угол поворота