Sto usando box2d su iPhone per creare un gioco. Ho un corpo che viene colpito dalla gravità per spostarsi verso il basso e non verso destra o verso sinistra. Sarà colpito da un altro corpo e si muoverà a destra oa sinistra. Poi ho un pulsante di reset che riporta il corpo al punto di partenza. L'unico problema è che si sta ancora muovendo a destra oa sinistra. Come posso contrastare le forze che una palla sta già viaggiando? Come posso liberarmi di questo movimento a destra e a sinistra quando resetto il mio gioco?Come fermare le forze che agiscono su un corpo in box2d
11
A
risposta
25
box2d elimina automaticamente ogni fase della simulazione. Penso che stai solo cambiando la posizione del tuo corpo durante il ripristino, ma non è la velocità. Aggiungere questo codice al metodo di ripristino:
body->SetLinearVelocity(b2Vec2(0,0));
body->SetAngularVelocity(0);
Ho provato questo modo, ma non funziona quando due oggetti vicini l'uno all'altro http://stackoverflow.com/questions/39716111/cocos2dx-unable-to- set-velocity-0-0 – TomSawyer
@TomSawyer: probabilmente si scontrano dopo aver ripristinato le velocità e questo fa cambiare nuovamente la loro velocità – Andrew
Penso che resettare la velocità faccia fermare un oggetto. è impossibile scontrarsi con l'altro. Ad ogni modo per assicurarsi che un oggetto sia stato fermato? – TomSawyer