Подскажите как реализовать удлиняющуюся руку. Я работаю с физическим движком Chipmunk, поэтому возникают трудности.
Я сейчас реализовываю так: в цикле сначала удаляю объект, а потом создаю новый, с новой длиной. Проблема в том, что получается, что либо рука с обеих сторон удлиняется, либо вообще не удлиняется.
Вот с какими параметрами я сначала создаю руку:
Code
handVerts[0] := cpv(-handWidth/2.0, -handHeight/2.0);//это вершины прямоугольника
handVerts[1] := cpv(-handWidth/2.0, handHeight/2.0);
handVerts[2] := cpv(handWidth/2.0, handHeight/2.0 );
handVerts[3] := cpv(handWidth/2.0, -handHeight/2.0 );
handBody.p := cpv( x + w/2.0 - 4, y + h/2.0 + 4); //позиция прямоугольника(x, y - начальные координаты, w, h - размеры самого человека)
constraintBodyHand := cpSpaceAddConstraint(space, cpPivotJointNew(body, handBody, cpv(x + 8, y )));//точка соединения тела и руки
Как я создаю объекты при удлинении руки
Code
handH := handH + 5;
handVerts[0] := cpv(-handW/2.0, -50/2.0);
handVerts[1] := cpv(-handW/2.0, handH/2.0 );
handVerts[2] := cpv(handW/2.0, handH/2.0 );
handVerts[3] := cpv(handW/2.0, -50/2.0);
handBody.p := cpv( body.p.x + w/2.0 - 4, body.p.y + h/2.0 + 4);
constraintBodyHand := cpSpaceAddConstraint(space, cpPivotJointNew(body, handBody, cpv(body.p.x + 8, body.p.y )));