Frage

Hier ist mein Problem. Ich habe einen steifen Körper Chipmunk (ein Soda stehen kann), dass ich will seinen Schwerpunkt auf den Boden des Objekts ändern, so dass es auf seiner Flanke fallen kann, wenn eine Kraft auf seinen oberen Teil angewandt wird.

Bin ich auf dem richtigen Weg?

1) Aus irgendeinem Grund bin ich Probleme, die Einstellung der Körperschwerpunkt auf einen bestimmten Wert. Jeder hat eine einfache Lösung bitte?

2) Was ist mit dem Sprites Schwerpunkt ? Muss ich es ändern, wie gut? Wenn ja, wie?

Danke, dass für die Klärung.

Yohann T.

War es hilfreich?

Lösung

Nevermind!

Ich antworte meine eigenen Fragen, da es 16 Stunden war vor und ich habe es auf eigene Faust zu finden (ja es hat mich so lange es um herauszufinden, was für eine Verschwendung von Zeit). Zum Glück für Sie, ich werde die Lösung teilen, so dass Sie nicht so viele Stunden herauszufinden, verbringen.

1) Aus irgendeinem Grunde Ich haben Probleme, den Körpers des Schwerpunkt auf einen bestimmten Wert zu setzen. Jeder hat eine einfache Lösung bitte?

Antwort: Sie können nicht den Schwerpunkt eines Körpers ändern, weil in einer realen Welt simuliert, der Schwerpunkt ist nicht geändert , unlesss Sie tatsächlich das Objekt morphen! ! !

Die Art und Weise, es zu tun, ist nicht mit einem Körper mit einer „Box“ Form zu erstellen. Sie haben das Objekt mit Eckpunkten zu erstellen, so dass es durch jede Art von Physik beeinflusst werden kann, nicht nur Bewegung.

Hier ist der Code, den ich verwenden, um ein Feld um das Objekt zu erstellen:

int num = 4;
cpVect verts[] = {
    cpv(-15,-15),
    cpv(-15, 15),
    cpv( 15, 15),
    cpv( 15,-15),
};
body = cpBodyNew(1.0f, cpMomentForPoly(1.0f, num, verts, cpvzero));
body->p = cpv(-280, 240);
cpSpaceAddBody(space, body);
shape = cpPolyShapeNew(body, num, verts, cpvzero);
shape->e = 0.0f; shape->u = 1.5f;
shape->collision_type = 1;
cpSpaceAddShape(space, shape);

2) Was ist der Schwerpunkt des Sprites? Muss ich es ändern, wie gut? Wenn ja, wie?

Mit dieser Methode:

[sprite setTransformAnchor:ccp(27,54)];

Aber denken Sie daran, dass die Koordinaten beginnt an der linken unteren Ecke des Bildschirms. Aber Sie werden nicht das Sprite berühren, wenn Sie den Körper der Physik richtig handhaben.

Viel Glück jetzt!

Yohann T.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top