AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez
 

 Modifié progressivement une donnée dans une variable

Aller en bas 
AuteurMessage
Fostraceur
Pas mal


Messages : 34

Modifié progressivement une donnée dans une variable Empty
MessageSujet: Modifié progressivement une donnée dans une variable   Modifié progressivement une donnée dans une variable EmptyDim 5 Fév 2017 - 10:24

Salut les gens ,Encore une question ,mais super simple (je penses) ce coup ci .

Je cherche juste a modifié progressivement une valeur dans une variable ,exemple :

Une IA cours après le joueur ,son image_angle dépend de sa direction ,sauf que du coup si l'ia ce met d'un coup a inverser sa direction pour n'importe quel raison on s'en fiche , donc ,image_angle ce retrouve de 90 a 270 ° en une step ce qui fais très "robot" ,et du coup je cherche comment progressivement changer cet valeur pour passer de 90 a 270 ° en plusieurs step ( par exemple 10 points par step ,tout ça n'est qu'un exemple pour vous faire comprendre l'idée )

Du coup je penses ça donne une truc genre :

image_angle = prog(direction)

sauf que je connais pas du tout le terme "prog" qui fais tout ça ,merci encore a onilink qui sera le premier a répondre ^^
Revenir en haut Aller en bas
hyper
Utilisateur confirmé: Rang ****
hyper

Messages : 1434

Modifié progressivement une donnée dans une variable Empty
MessageSujet: Re: Modifié progressivement une donnée dans une variable   Modifié progressivement une donnée dans une variable EmptyDim 5 Fév 2017 - 10:36

Bonjour, je suis onilink o/

Normalement, il suffit de faire la moyenne entre la valeur de départ et la valeur d'arrivée :
Code:
variable = (variable + nouvelle_variable)/2
Pour un truc fluide, on change la valeur beaucoup plus progressivement, c'est-à-dire augmenter le poids de l'ancienne valeur :
Code:
variable = (variable*15 + nouvelle_variable)/16

Ici, on remplace variable par image_angle et nouvelle_variable par direction.
Ce type de code marche bien pour les positions, mais pour ce qui est des directions il faut gérer le passage de 360° à 0°, et c'est là où oni peut intervenir car j'avais le même problème avant et je ne me souviens plus de la solution ou s'il y en avait Razz

_________________
côt.
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_

Messages : 9099
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Modifié progressivement une donnée dans une variable Empty
MessageSujet: Re: Modifié progressivement une donnée dans une variable   Modifié progressivement une donnée dans une variable EmptyDim 5 Fév 2017 - 13:20

C'est quoi ce vol d'identité hyper la.

Sinon ça s'appelle une interpolation linéaire, et de base tu peux utiliser lerp pour faire l'equivalent de
variable = (variable + nouvelle_variable)/2
=> variable = lerp(variable, nouvelle_variable, 0.5)

Pour les angles il faut les passer en coordonnées polaires pour pouvoir faire une interpolation qui marche:

angle = point_direction(0, 0,
 lerp(lengthdir_x(1, angle), lengthdir_x(1, nouvel_angle), 0.5),
 lerp(lengthdir_y(1, angle), lengthdir_y(1, nouvel_angle), 0.5))

_________________
Modifié progressivement une donnée dans une variable Runningpotato1Modifié progressivement une donnée dans une variable TvF6GED
Revenir en haut Aller en bas
Fostraceur
Pas mal


Messages : 34

Modifié progressivement une donnée dans une variable Empty
MessageSujet: Re: Modifié progressivement une donnée dans une variable   Modifié progressivement une donnée dans une variable EmptyDim 5 Fév 2017 - 13:33

Merci onilink² ,je vais tester tout ça (j'étais presque sur que c'était lerp en plus ,mais j'arrivais pas a comprendre la fonction ) je vous redis ça.
Revenir en haut Aller en bas
Fostraceur
Pas mal


Messages : 34

Modifié progressivement une donnée dans une variable Empty
MessageSujet: re   Modifié progressivement une donnée dans une variable EmptyMer 8 Fév 2017 - 14:16

J'ai trouvé ça aussi :

image_angle += sin(degtorad(nouvel_angle - image_angle)) * vitesse de rotation ;
Revenir en haut Aller en bas
Contenu sponsorisé




Modifié progressivement une donnée dans une variable Empty
MessageSujet: Re: Modifié progressivement une donnée dans une variable   Modifié progressivement une donnée dans une variable Empty

Revenir en haut Aller en bas
 
Modifié progressivement une donnée dans une variable
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide débutants-
Sauter vers: