2011-02-07 3 views
0

Dans mon jeu iPhone (je me sers cocos2d, ne devrait pas faire une énorme différence) Je veux avoir comme ceci:iPhone - Tilt pour déplacer

Vous utilisez l'accéléromètre pour le déplacement du sprite/joueur l'écran, avec l'accélération que vous inclinez plus et je veux aussi faire tourner le sprite pour pointer dans la direction que vous inclinez.

Toute aide serait appréciée, merci.

Répondre

0

Vous pouvez utiliser un moteur physique (je préfère Chipmunk, car il a une API plus simple) pour appliquer l'inertie et l'accélération à un système à deux corps. Attachez un lien de longueur fixe entre les corps, et appliquez la traînée aux deux corps, mais donnez à un corps plus de traînée que l'autre. Fixez le sprite au milieu de ces deux corps, et son angle correspondant à l'angle entre les corps, avec le "front" du sprite pointant vers le corps avec moins de traînée.

À moins que vous n'utilisiez déjà un moteur de physique, il s'agit d'un effort plus important que celui d'un hack fudge-the-angles, mais qui sera beaucoup plus naturel à l'œil.

EDIT: un projet plus récent, j'élaboré une technique unique corps en utilisant un groove joint (pas sûr de ce que l'Box2D equiv est) sur le corps avec l'ancre sur le monde. Localisez l'ancre du monde loin du centre de gravité du corps et, à chaque étape, déplacez l'ancre de sorte qu'elle reste exactement dans la même position relative au corps. Plus l'ancrage est éloigné du centre de gravité, plus le corps tourne lentement pour faire face à la direction du déplacement.

+0

pouvons-nous faire la même chose en utilisant le moteur box2d? –

+0

@shaqirsaiyed: Tout moteur physique digne de ce nom peut le faire. Notez que j'ai ajouté une meilleure technique à la réponse tout à l'heure. –

Questions connexes