Mouvement de lucioles (ellipse)

Discutez d'informatique ici !
saturn1
Membre Naturel
Messages: 32
Enregistré le: 26 Aoû 2006, 17:13

Mouvement de lucioles (ellipse)

par saturn1 » 29 Jan 2010, 23:27

Bonjour j'ai un script qui permet de simuler le mouvement d'une luciole tournant autour d'un personnage.
Il marche bien, et les lucioles font des ellipses autour de mon personnages.


Mais si je fais avancer mon personnage les lucioles cassent leur trajectoire initiale de l'ellipse pour suivre le hero et apres quand le hero s'arrete elles refont des ellipses.

Voici comment j'update la position des lucioles :

Code: Tout sélectionner
public override void Update(GameTime gameTime)
{
myLastpos = targetPos;
targetPos = new Vector2((float)Math.Cos(gameTime.TotalGameTime.TotalSeconds * speed) * 100, (float)Math.Sin(gameTime.TotalGameTime.TotalSeconds * 1.2f * speed) * 100) + position;
} // la variable position represente la position du joueur


Donc c'est logique que les lucioles cassent leur ellipses si je modifie la position.

Je cherche a donner un effet naturels au lucioles lorsque le personnage avance.

Merci



Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 30 Jan 2010, 08:43

salut,

j'imagine que quand le perso avance, les lucioles continuent a faire des especes d'ellipse tout en suivant le perso...et tu veux quelles le suivent sans faire des ellipses qui n'ont lieu detre.

ya plusieurs possibilités :
tu peux mettre un état sur tes lucioles. L'état pause et l'état move.
Lorsque le personnage bouges, tu passes l'état pause a l'état move.
Pour voir qu'il bouge, spas dure, suffit d'avoir un oldPosition et de comparer avec position.

evidemment dans chacun des états, l'algo que t'implémentes n'est pas le même. Tu peux par exemple dans l'état move, mettre un truc du style
Code: Tout sélectionner
luciolePositionX(+random10), luciolePositionY (+ random 10)


(aux erreurs de la syntaxe).

Cque j'aime dans ce pattern state, c'est que ta luciole peut agir différemment pdt que le perso bouge, pis elle peut proposer des options différentes. Genre devenir lumineuse quand elle bouge, ...

L'autre possibilité, c'est d'etre un peu plus boeuf, et de direct faire de l'intrusif dans ton calcul de position de lucioles.
Jor tout simplement
Code: Tout sélectionner
if(oldPosition - position ==0)
{
//le calcul actuel
}
else{ //ca bouge
//le nouveau calcul qui est le même que dans le state
}
la vie est une fête :)

saturn1
Membre Naturel
Messages: 32
Enregistré le: 26 Aoû 2006, 17:13

re

par saturn1 » 30 Jan 2010, 11:52

Merci de ta reponse, je vais faire avec la methode random... :)

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 8 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite