2010-05-01 4 views
0

J'ai un projet simple construit avec Cocos2D et Chipmunk. Jusqu'à présent, il s'agit juste d'une balle (corps, forme & sprite) qui rebondit sur le sol (un segment de ligne statique au bas de l'écran).Faire glisser un Sprite (Cocos2D) pendant que le Chipmunk simule

J'ai implémenté les méthodes ccTouchesBegan/Moved/Ended pour faire glisser la balle. J'ai essayé à la fois:

cpBodySlew(ballBody, touchPoint, 1.0/60.0f); 

et

ballBody->p = cgPointMake(touchPoint.x,touchPoint.y); 

et alors que le ballon ne suit mon Traîner, il est toujours affecté par la gravité et elle essaie d'aller vers le bas (ce qui provoque des problèmes et autres vitesse).

Est-ce que quelqu'un connaît le moyen préféré de faire glisser un corps actif pendant que la simulation physique est en cours? Ai-je besoin d'arrêter la simulation et de la rallumer par la suite?

Merci!

Répondre

0

Retirez temporairement le corps de l'espace.

Si vous voulez que l'objet ait une inertie lorsque vous le relâchez, c'est une histoire différente. Le moyen le plus propre consiste à attacher un ressort assez rigide entre la balle et un corps de capteur temporaire qui se déplace sous le contrôle de votre doigt. Lorsque vous lâchez avec votre doigt, la balle conservera toute la cinématique qu'elle avait pendant que vous la traîniez. Soyez sûr pas pour enlever la balle de l'espace dans ce cas.

+0

Je suis capable de le faire glisser maintenant, mais si je le lance sur le côté et le relâche, il s'arrête et tombe juste en ligne droite et rebondit ... Toute idée comment puis-je le faire ainsi il va se déplacer à la bonne direction/vitesse quand je le relâche? Merci. –

+0

J'ai mis à jour la réponse. –

Questions connexes