Je construis un jeu avec des joueurs et des missiles.
Je veux tirer un missile de P1 à P2. Le missile devrait toujours prendre exactement cinq secondes pour atteindre P2. Le missile devrait également suivre P2. Si P2 s'éloigne, le missile doit accélérer pour satisfaire la contrainte de synchronisation. Si P2 se déplace vers la gauche, le missile doit se déplacer vers la gauche (et changer également de vitesse). Si P2 se rapproche de P1, le missile doit ralentir.
Est-ce possible? Quelle est la meilleure façon d'y parvenir?
Je n'ai pas actuellement de classe Vector2D (ce n'est pas vraiment un jeu, mais l'analogie fonctionne bien), donc si possible, j'aimerais une solution qui n'en nécessite pas.
Edit: Ce n'est pas non plus un missile. :)
Merci!
Réponses:
Le montage est rassurant. :)
D'accord, voici une boucle de mise à jour simple ...
En supposant que lorsque nous tirons le missile, nous initialisons
remainingFlightTime = 5f
puis ...la source
Pourquoi ne pas conserver la position et mettre à jour la destination cible au fur et à mesure qu'elle change?
Vous pourriez avoir à regarder comment fonctionne lerping, mais cela ressemblerait à quelque chose comme ceci:
en lerpant vous changez fondamentalement la position d'un objet sur une certaine période de temps afin que vous puissiez dire que vous êtes à 50% du chemin de A à B et que l'objet serait placé là. Lerping est direct donc vous vous dirigerez toujours vers la cible (comme vous le souhaitez dans les commentaires).
la source