Sto usando mousejoint per trascinare i corpi in box2d, ma causa un ritardo inerziale.Box2d: mousejoint senza ritardo inerziale
Esiste un modo per trascinare un corpo istantaneamente?
Sto usando mousejoint per trascinare i corpi in box2d, ma causa un ritardo inerziale.Box2d: mousejoint senza ritardo inerziale
Esiste un modo per trascinare un corpo istantaneamente?
La soluzione è di ottimizzare le proprietà frequencyHz e dampingRatio nel b2MouseJointDef.
Ad esempio:
b2MouseJointDef md;
md.body1 = _groundBody;
md.body2 = body;
md.target = p;
md.maxForce = 10000.0f * body->GetMass();
md.dampingRatio = 0;
md.frequencyHz = 100;
_world->CreateJoint(&md);
Sto cercando di implementare un gioco in stile pong nella libreria Processing/Box2d e prevedo di avere lo stesso problema. Una cosa che viene in mente è di mantenere un oggetto nascosto nel mondo di Box2d, uno che funziona con le giunture in modo convenzionale, e quindi disegnare un oggetto virtuale che segue il mouse senza alcun ritardo di fotogramma. Questo potrebbe essere adeguato per ingannare l'utente.
D'altra parte, Box2d non è una simulazione fisica rigorosa e consente un po 'di perdono in oggetti sovrapposti, quindi sembra davvero che ci dovrebbe essere un modo per farlo.
Vedere la mia risposta per la soluzione! – Ricibald
Grazie! Funziona perfettamente. Ho trovato un esempio di utilizzo del mousejoint in Processing qui: http://processing.org/discourse/yabb2/YaBB.pl?num=1213404906/30 e l'ho modificato con il tuo suggerimento. –
Non posso votare la mia risposta! Per favore votalo in modo che la risposta appaia in cima! – Ricibald
lingua del programma? – antpaw
versione originale di box2d: C++ – Ricibald