Cocos2d + Физика Бурундука - cpBodyApplyImpulse () - PullRequest
1 голос
/ 19 февраля 2012

Так что я работаю над игрой, по сути, с видом сверху на шар.Когда я нажимаю на шар, я в основном хочу запустить его в заданном направлении.Это была бы мгновенная сила (подумайте, ударяя по мячу в бассейне).Я пытаюсь использовать applyImpulse, чтобы сделать это.

Пока у меня есть:

 cpBodyApplyImpulse(sprite.body, 
                    cpBodyLocal2World(sprite.body, cpv(0.0, 1.0)), 
                    cpBodyLocal2World(sprite.body, cpv(0.0, 0.0))
 );

Насколько я понимаю, 2 вектора, которые принимает эта функция - это "мировые координаты«так что я делаю, визуализирую все в относительных к телу координатах и ​​затем преобразую их в мировые координаты.

Из моего приведенного выше кода, я бы подумал, что шар запустится прямо без вращения, потому чтовектор в положительном направлении у применяется в центре тяжести.Тем не менее, мяч в конечном итоге идет вправо, вращаясь бесконтрольно.Любые идеи, почему это происходит, и как мне добиться того, что я пытаюсь сделать?

1 Ответ

1 голос
/ 20 февраля 2012

cpBodyApplyImpulse принимает значения в координатах тела, а не в мире.

Попробуйте просто так:

cpBodyApplyImpulse(sprite.body, 
                    cpv(0.0, 1.0), 
                    cpv(0.0, 0.0));
...