Domanda

Qui è il mio problema. Ho corpo rigido di uno scoiattolo (una lattina in piedi) che voglio cambiare il suo centro di gravità verso il fondo dell'oggetto in modo che possa cadere sul suo fianco quando una forza viene applicata alla sua parte superiore.

Sono sulla strada giusta?

1) Per qualche ragione, sto avendo l'impostazione del Centro di gravità del corpo per un valore specifico problema. Chiunque ha una soluzione facile per favore?

2) Che dire del Centro di sprite di gravità ? Ho bisogno di cambiare come bene? Se sì, come?

Grazie per chiarire questo.

Yohann T.

È stato utile?

Soluzione

Nevermind!

sto rispondendo alle mie domande dal momento che era di 16 ore fa e ho avuto modo di trovare sul mio (yea mi c'è voluto così tanto tempo per capirlo, che spreco di tempo). Fortunatamente per voi, ho intenzione di condividere la soluzione in modo da non dover spendere molte ore per capire.

1) Per qualche ragione, sto avendo difficoltà impostando il centro di gravità del corpo a un valore specifico. Chiunque ha una soluzione facile per favore?

Risposta: Non è possibile modificare il centro di gravità di un corpo perché in un vero e proprio mondo simulato, il centro di gravità è non modificabile , unlesss effettivamente morph l'oggetto! ! !

Il modo di farlo, non è quello di creare un corpo a forma di "scatola". È necessario creare l'oggetto utilizzando i vertici in modo che possa essere influenzata da qualsiasi tipo di fisica, non solo il movimento.

qui è il codice che ho usato per creare una casella intorno all'oggetto:

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) Che cosa circa il centro dello sprite di gravità? Ho bisogno di cambiare come bene? Se sì, come?

utilizzare questo metodo:

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

Ma ricordate che le coordinate inizia nell'angolo in basso a sinistra dello schermo. Ma non sarà necessario toccare lo sprite se si gestisce correttamente la fisica del corpo.

Buona fortuna ora!

Yohann T.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top