- 351
- 0
Добрый день, у мня есть вопрос- как поворачивать шейпы, то есть части модели моба(Ну, для анимации при передвижении и атаке). Спасибо
glRotatef(angle, multX, multY, multZ);
leftArm.rotateAngleX = Math.pow(Math.sin(time), 2)*Math.PI;
leftArm.rotateAngleX = Math.pow(Math.sin(time), 2)*Math.PI + Math.PI;
После этого = и циферка типа -64.0F; ?Dragon2488 написал(а):shape1.rotateAngleX, shape1.rotateAngleY, shape1.rotateAngleZ
time выдаёт как ошибкуOldestkon написал(а):Код:glRotatef(angle, multX, multY, multZ);
angle - угол в градусах (!), multX\Y\Z - коэффициент для угла на данную ось. 0 убирает вращение по этой оси, 1 - вращение ровно на заданный угол по нужной оси.
/* Это для прямого рендера, если надо анимировать конечность тела у сущности - смотри ниже */
В рендер сущности передается параметр времени, где-то 3\4\5 аргумент, не помню точно. К примеру, мах рукой по оси Х делается примерно так:
- это ограничит диапазон значений синуса = [0; 1], потому что имеется квадрат, и, следовательно, при умножении на Math.PI мы будем иметь угол от 0 до 180, только в радианах. Если махи идут не снизу, а сверху, например, прибавляем к исходному углу 180 градусов. Ну или простоКод:leftArm.rotateAngleX = Math.pow(Math.sin(time), 2)*Math.PI;
Код:leftArm.rotateAngleX = Math.pow(Math.sin(time), 2)*Math.PI + Math.PI;
Угу..Oldestkon написал(а):Я же сказал, ищи аргумент в методе рендера. Конечно он выдает как ошибку, я тебе дал пример всего лишь. Откуда у тебя возьмется несуществующая переменная?
Намёк понимаешь?
Всё, дошло полностью! Сделал так, что когда мой Entity передвигается, он крутит рукой! СпасибоOldestkon написал(а):Я же сказал, ищи аргумент в методе рендера. Конечно он выдает как ошибку, я тебе дал пример всего лишь. Откуда у тебя возьмется несуществующая переменная?
Намёк понимаешь?