J'ai un jeu descendant pour iPhone (sans gravité) et j'utilise Cocos2d et Box2d.Le corps bouge trop vite après ApplyLinearImpulse()
J'essaie de déplacer une balle par ce code:
// 'targetPosition' is a point of touch
b2Vec2 touchInWorld = b2Vec2(targetPosition.x/PTM_RATIO, targetPosition.y/PTM_RATIO);
b2Vec2 direction = b2Vec2(touchInWorld.x - ballBodyDef.position.x, touchInWorld.y - ballBodyDef.position.y);
b2Vec2 force = b2Vec2(direction.x, direction.y);
force.Normalize();
ballBody->ApplyLinearImpulse(force, ballBodyDef.position);
Le problème est que la balle se déplace rapidement si sa réputation à l'image-objet est petit (10x10 px). Si le sprite est de 50x50, la vitesse est plus petite et semble correcte.
Ça me rend fou parce que je ne peux pas contrôler la vitesse du tout.
Et non seulement cela, si je ne mets pas force.Normalize() la vitesse est différente en fonction de la direction du toucher ...
Tout fonctionnait bien quand j'utilisais juste Cocos2d et animations . J'ai essayé d'utiliser Box2d pour implémenter des collisions, mais il semble que ce soit une énorme quantité d'efforts que je considère faire la physique moi-même :(