Ho un corpo con una massa di 10 e ad ogni ciclo del programma applico una forza di 100 utilizzando il metodo semplice;Box2D velocità del corpo cap?
Vector2 force = new Vector2(0, 1) * 100;
bod.ApplyForce(force, bod.GetWorldCenter());
E le grandi opere, accelera e tutto questo, ma una volta che si arriva a una velocità di 10 (100/10 presumo) non andrà più veloce. Io non sono un fisico in alcun modo, ma ricordo che il corpo dovrebbe continuamente accelerare, come se fosse sotto gravità. Questo limite di velocità è il risultato del modo in cui Box2D fa qualcosa, o sto davvero rovinando qualcosa? Inoltre, cosa devo fare per risolverlo.
NOTA: ottengo la stessa velocità limitata se uso ApplyLinearImpulse invece di ApplyForce
Aggiornamento: Sono ben consapevole del limite di velocità massima complessiva imposto dal Box2D (in b2Settings.h). Nel mio esempio, l'oggetto in questione si sta muovendo ben al di sotto di questo limite poiché la modifica della forza applicata, sia essa 1000 o 10000 arriverà sempre alla velocità massima di (forza/massa).
Questa non è una risposta adeguata, ma forse dovresti lavorare con una scala generale più piccola. In questo modo è possibile applicare forze più piccole e quindi non rimanere bloccati da alcuni limiti di forze. Spesso a Box2d non piace quando lavori su una base troppo grande. – phemios
la scala è a posto. un oggetto ha una massa di 10 kg e io sto applicando una forza di 100N ad esso. La velocità ridotta si riduce a 10 m/s, il che è decisamente nel range di scala per Box2D. –
Avete controllato lo smorzamento lineare? – Davos555