Ho un controller di caratteri di base impostato per un platform 2D con Box2D e sto iniziando a modificarlo per provare a farlo stare bene. I motori fisici hanno molte manopole da modificare, e non mi è chiaro, scrivendo con un motore fisico per la prima volta, quali dovrei usare. Il salto dovrebbe applicare una forza per diverse zecche? Un impulso? Impostare direttamente la velocità? Come posso impedire che l'avatar si attacchi alle pareti senza togliere tutta la sua frizione (o posso rimuovere tutta la frizione, ma solo nell'aria)? Dovrei modellare il personaggio come una capsula? Una scatola con angoli arrotondati? Una scatola con due ruote? Solo una grande ruota? Sento che qualcuno deve averlo fatto prima!
Sembra che ci siano pochissime risorse disponibili sul web che non siano "la prima fisica del bambino", il che interrompe il punto in cui spero che qualcuno abbia già risolto i problemi. La maggior parte degli esempi di motori fisici per i platform ha controlli di sensibilità fluttuanti, salti in aria o comportamenti facilmente sfruttabili quando la penetrazione temporanea è troppo elevata, ecc.
Alcuni esempi di cosa intendo:
- Un breve tocco di salto salta a breve distanza; un lungo tocco salta più in alto.
- Breve slittamento quando si arrestano o si invertono le direzioni ad alta velocità.
- In piedi stabilmente su pendii (ma forse scivolando giù durante il ducking).
- Velocità analogica quando si utilizza un controller analogico.
- Tutte le altre cose che separano i bravi platform da quelli cattivi.
- Oserei suggerire, piattaforme mobili stabili?
Non sto davvero cercando "ehi, fallo." Ovviamente, la cosa giusta da fare dipende da ciò che voglio nel gioco. Ma spero che qualcuno da qualche parte abbia attraversato le possibilità e abbia detto "bene la tecnica A presenta X bene, la tecnica B fa Y bene, ma questo non funziona con C", o ha alcuni esempi funzionanti oltre "se (key = = spazio) character.impulse (0, 1) "