Fonction qui déplace un élément à un autre

dans une scene 2D (équivalent à MoveToLocation en 2D avec UE4)

Le problème exposé dans ce sujet a été résolu.

Bonjour,

Je suis en train de faire une application test/démo de Nazara et j'ai choisi de faire Javaquarium.

Je suis à la partie 2 où on doit faire manger les poissons. Mais comme je le fais en 2D et pas en console comme l'exercice original, je cherche à faire une fonction qui permet de déplacer un poisson vers un autre ou une algue mais je ne vois pas du tout comment m'y prendre.

J'ai déjà essayé de faire une fonction comme ça pour un autre projet mais j'ai jamais réussi. (Comme exemple, j'aimerais un comportement comme la fonction MoveToActor dans Unreal Engine 4)

Je cherche juste une (des?) piste(s) pour savoir comment m'y prendre, parce que là j'avoue être un peu pommé et pas savoir du tout comment faire

Merci d'avance, :)
Ardakaniz

+0 -0

Je connais ni Nazara ni C++. Mais je ferait comme ça :

Le poisson possède une position (Vecteur) et une vitesse (Reel). L'algue possede juste une position. Tu calcule le déplacement nécessaire du poisson jusqu'à l'algue (algue.position - poisson.position). Tu calcule ensuite la direction que doit prendre le poisson ; il faut prendre le vecteur unité du déplacement. Tu récupère ensuite le temps écoulé depuis la dernière fois que le déplacement à été effectué, 1/60 si ton affichage est à 60Hz. Tu multiplie le tout, et c'est bon.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Poisson = 
    position :: Vecteur
    vitesse :: Reel

Algue =
    position :: Vecteur

tick :: Reel -> void
    tick(temps) = 
        direction = unitée(algue.position - poisson.position)
        poisson.position = direction * temps * poisson.vitesse

unitée est une fonction de Vecteur dans Vecteur qui a un vecteur u retourne un vecteur de norme 1 et porté par le même droite que u.

Après il faut impémenter une détection des collisions, mais c'est une autre problème .

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte