[MY-AL] Problème de déplacement
Publié : 02 Oct 2017 00:42
Bonjour, je viens vers vous car j'ai un soucis d'algorithmie. Je pense que je suis pas loin de la solution mais je n'y arrive pas.
Le but est de faire bougé un personnage (en vrai c'est plus compliqué mais je simplifie), jusque la pas de soucis. Le problème est que dans mon jeu j'ai besoin d’accéléré le temps.
J'ai aussi besoin de soulagé mon CPU car en faite l'action d'avancer me coute cher (sur plateforme mobile) et donc je fais des pauses dans mes déplacements. Voici mon premier code simplifié
J'ai donc essayé d'implémenté l’accélération du temps, en faite la pause est plus longue mais le déplacement est plus grand ce qui devrai revenir au même ?
Le soucis est que quand je fais mes tests, en vérité les personnages n'arrive pas au même moment (en mesurant le temps de déplacement divisé par le ratio), j'ai donc probablement loupé quelque chose...
auriez vous une idée ?
Si ce n'est pas claire hésitez pas à me le dire.
Merci par avance.
Le but est de faire bougé un personnage (en vrai c'est plus compliqué mais je simplifie), jusque la pas de soucis. Le problème est que dans mon jeu j'ai besoin d’accéléré le temps.
J'ai aussi besoin de soulagé mon CPU car en faite l'action d'avancer me coute cher (sur plateforme mobile) et donc je fais des pauses dans mes déplacements. Voici mon premier code simplifié
Code : Tout sélectionner
void FixedUpdate()
{
run();
}
private void run()
{
_timeRun += Time.deltaTime;
if (_timeRun >= _delayRun)
{
float deltaMove = _runSpeed * Time.deltaTime;
move(deltaMove); // ma fonction qui coute cher
_timeRun = _timeRun - _delayRun; // on rattrape le décalage
}
}
private void move(float delta)
{
//......
}
Code : Tout sélectionner
void FixedUpdate()
{
run();
}
private void run()
{
_timeRun += Time.deltaTime;
if (_timeRun >= _delayRun* _ratioSpeed)
{
float deltaMove = _runSpeed * Time.deltaTime * _ratioSpeed;
move(deltaMove); // ma fonction qui coute cher
_timeRun = _timeRun - _delayRun; // on rattrape le décalage
}
}
private void move(float delta)
{
//......
}
auriez vous une idée ?
Si ce n'est pas claire hésitez pas à me le dire.
Merci par avance.