Поворот шейпов [1.6.4]

Статус
В этой теме нельзя размещать новые ответы.
Добрый день, у мня есть вопрос- как поворачивать шейпы, то есть части модели моба(Ну, для анимации при передвижении и атаке). Спасибо
 
1,990
18
105
Код:
glRotatef(angle, multX, multY, multZ);

angle - угол в градусах (!), multX\Y\Z - коэффициент для угла на данную ось. 0 убирает вращение по этой оси, 1 - вращение ровно на заданный угол по нужной оси.
/* Это для прямого рендера, если надо анимировать конечность тела у сущности - смотри ниже */

В рендер сущности передается параметр времени, где-то 3\4\5 аргумент, не помню точно. К примеру, мах рукой по оси Х делается примерно так:
Код:
leftArm.rotateAngleX = Math.pow(Math.sin(time), 2)*Math.PI;
- это ограничит диапазон значений синуса = [0; 1], потому что имеется квадрат, и, следовательно, при умножении на Math.PI мы будем иметь угол от 0 до 180, только в радианах. Если махи идут не снизу, а сверху, например, прибавляем к исходному углу 180 градусов. Ну или просто
Код:
leftArm.rotateAngleX = Math.pow(Math.sin(time), 2)*Math.PI + Math.PI;
 
Dragon2488 написал(а):
shape1.rotateAngleX, shape1.rotateAngleY, shape1.rotateAngleZ
После этого = и циферка типа -64.0F; ?
Или что?
[merge_posts_bbcode]Добавлено: 15.07.2014 20:01:31[/merge_posts_bbcode]

Oldestkon написал(а):
Код:
glRotatef(angle, multX, multY, multZ);

angle - угол в градусах (!), multX\Y\Z - коэффициент для угла на данную ось. 0 убирает вращение по этой оси, 1 - вращение ровно на заданный угол по нужной оси.
/* Это для прямого рендера, если надо анимировать конечность тела у сущности - смотри ниже */

В рендер сущности передается параметр времени, где-то 3\4\5 аргумент, не помню точно. К примеру, мах рукой по оси Х делается примерно так:
Код:
leftArm.rotateAngleX = Math.pow(Math.sin(time), 2)*Math.PI;
- это ограничит диапазон значений синуса = [0; 1], потому что имеется квадрат, и, следовательно, при умножении на Math.PI мы будем иметь угол от 0 до 180, только в радианах. Если махи идут не снизу, а сверху, например, прибавляем к исходному углу 180 градусов. Ну или просто
Код:
leftArm.rotateAngleX = Math.pow(Math.sin(time), 2)*Math.PI + Math.PI;
 
time выдаёт как ошибку
 
1,990
18
105
Я же сказал, ищи аргумент в методе рендера. Конечно он выдает как ошибку, я тебе дал пример всего лишь. Откуда у тебя возьмется несуществующая переменная?
pUttoUy.png

9JrdI2l.png

Намёк понимаешь?
 
Oldestkon написал(а):
Я же сказал, ищи аргумент в методе рендера. Конечно он выдает как ошибку, я тебе дал пример всего лишь. Откуда у тебя возьмется несуществующая переменная?
pUttoUy.png

9JrdI2l.png

Намёк понимаешь?
Угу..
[merge_posts_bbcode]Добавлено: 15.07.2014 20:18:41[/merge_posts_bbcode]

Oldestkon написал(а):
Я же сказал, ищи аргумент в методе рендера. Конечно он выдает как ошибку, я тебе дал пример всего лишь. Откуда у тебя возьмется несуществующая переменная?
pUttoUy.png

 
9JrdI2l.png

Намёк понимаешь?
Всё, дошло полностью! Сделал так, что когда мой Entity передвигается, он крутит рукой! Спасибо
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху