- 351
- 0
Спасибо, что перенесли!
Oldestkon написал(а):Тоже не трудно.evan написал(а):То самое чувство, когда у твоего моба ноги сделаны из нескольких частей
Допустим, есть колено, т.е. на одну ноги приходится две кости, бедро и голень. Бедро привязано к туловищу, голень к бедру.
Бедро вращаем ровно как в туториале, с коленом следующее:
Задаем голени позицию бедра (у бедра pivot-поинт, т.е. ориджин, т.е. начало его системы координат должно быть вверху, в точке, где соединяется с туловищем, у голени то же самое).
Вычисляем вектор для смещения голени к колену.
Вот, таким образом ставим голень к концу бедра. Придется чуть повозиться ещё с небольшими смещениями, чтобы его в центр пихнуть.Код:x = leg.sizeX; y = leg.sizeY; z = leg.sizeZ; x *= Math.cos(leg.angleX); y *= Math.cos(leg.angleY); //может синус z *= Math.sin(leg.angleZ); lowerleg.setPosition(leg.posX + x, leg.posY + y, leg.posZ + z);
Можно всё это сделать матричными преобразованиями самого OpenGL.
А дальше остается только задавать угол поворота голени, по тому же принципу.
Кстати, со ступней все так же, только связана будет с голенью, а не с бедром.
public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity)