Forum Le CBNA

Le Forum du CBNA a pour but de vous aider dans l'utilisation de GameMaker. Premier forum Francophone sous GameMaker, vous trouverez des .gmd, .gm6, .gmk, scripts, logiciels et d'autres ressources sur Le CBNA.
 
AccueilAccueil  ­FAQFAQ  ­RechercherRechercher  ­S'enregistrerS'enregistrer  ­MembresMembres  ­ConnexionConnexion  
Poster un nouveau sujet   Répondre au sujetPartager | 
 

 Algorithme d'évolution progressive d'une variable

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Dardelare
Débutant


Nombre de messages: 17
Avancement:
0 / 1000 / 100


MessageSujet: Algorithme d'évolution progressive d'une variable   Dim 31 Mai - 17:19

J'avais récemment eu l'idée de changer de logique de programmation: au lieu de changer la valeur d'une variable subitement dans une action, j'ai préféré la faire évoluer step par step, ce qui rendait dans l'ensemble le jeu plus fluide.
Malheureusement, cela revenait à reprogrammer plusieurs fois des algorithmes similaires. J'ai donc généralisé le programme. C'est la fonction slide que voici:
Citation:
/* La fonction slide permet de faire évoluer une variable vers une valeur donnée step par step.
Elle se présente sous la forme var = slide (var, floor, step)
var est la variable à faire 'glisser'.
floor est la valeur vers laquelle la variable va évoluer.
step est la valeur d'évolution entre chaque step.
*/
var variable, plus;
variable = argument0;
plus = sign(variable-argument1);
variable -= plus*argument2;
if (plus <> sign(variable-argument1))
variable = argument1;
return variable


J'ai essayé en vain de l'adapter en extension, c'est pourquoi je me tourne vers vous. L'idéal serait d'en faire une fonction comme for, est-ce possible?
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ***


Nombre de messages: 579
Localisation: méribel
Avancement:
100 / 100100 / 100


MessageSujet: Re: Algorithme d'évolution progressive d'une variable   Dim 31 Mai - 17:39

Citation:

J'ai essayé en vain de l'adapter en extension


tu entend quoi par cela, le system d'extension de gm7, libs, script?


puis je comprend pas non plus le reste.


Sinon pour ce passer de step on pourrais faire ceci:


<variable>+=(<nouvelle valeur>-<variable>)/10

ainsi la variable va tendre vers la nouvelle valeur (elle réduit l'écart de 1/10 par step, mouvement decéléré donc et non plus uniforme)

ensuite on ne modifie que nouvelle valeur

_________________


Mon dossier d'exemples Game Maker
Hospital Prisonner, le développement recommence!
Revenir en haut Aller en bas
Sekigo Le Magnifique
Utilisateur confirmé: Rang ***


Nombre de messages: 724
Avancement:
0 / 1000 / 100


MessageSujet: Re: Algorithme d'évolution progressive d'une variable   Dim 31 Mai - 23:02

Si j'ai bien compris, tu voudrais la voir dans l'editeur de script comme les fonctions with, for, switch, etc.....
Est-ce possible ? Peut-etre avec les .gex, mais vu que je ne me suis pas plonge dedans, je n'en sais rien, ce n'est qu'une hypothese.

Sinon, bah, dans un script, je trouve que cela convient tres bien, étant donne que tu dois entrer des arguments.

_________________
3==D (_¤_)
( Y ) 8===D --- (.Y.)
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ***


Nombre de messages: 579
Localisation: méribel
Avancement:
100 / 100100 / 100


MessageSujet: Re: Algorithme d'évolution progressive d'une variable   Lun 1 Juin - 1:38

with, for, switch, etc..... ne sont pas des fonctions, simplement des mots-clé utilisé pour programmer. Il est impossible d'en ajouter avec le système d'extension.

Mais de toute manière je ne vois pas l'intéret d'ajouter des mots-clé.
Des fonctions oui.

_________________


Mon dossier d'exemples Game Maker
Hospital Prisonner, le développement recommence!
Revenir en haut Aller en bas
gabin49
Utilisateur confirmé: Rang *


Nombre de messages: 168
Localisation: premiere porte a droite :p
Projet Actuel: iDaft version exe et paint casio
Avancement:
50 / 10050 / 100


MessageSujet: Re: Algorithme d'évolution progressive d'une variable   Mar 2 Juin - 21:30

Citation:
Mais de toute manière je ne vois pas l'intéret d'ajouter des mots-clé.

c'est tout a fait vrai car les mots-clés ne sont faites que en delphi (la langue de programmation utilisé dans game maker)

Citation:
Des fonctions oui.

je suis sur que c'est ce que veut faire Dardelare, mais il n'y a aucun besoin de faire des gex ou des extensions exterieurs pour ce genres de choses (en parti des fonctions)
ce qu'il faut c'est :
  • créer un script du nom de 'slide'
  • mettre le script que tu () as écrit dans ton message
  • et ensuite tu met dans l'event 'step' de ton object : nomdelavariable = slide (nomdelavariable , nfloor, nstep)
    important : ne met jamais en nom de variable : 'var' et 'floor' car floor est deja une variable et var est un mot clé

pas besoin de plus (ni moins d'ailleurs super)

_________________
Projet de topaze22



je suis pour, continue comme ça super

I am a in the GM Quiz!
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
Chulien
Utilisateur confirmé: Rang ***


Nombre de messages: 646
Localisation: marseille
Avancement:
1 / 1001 / 100


MessageSujet: Re: Algorithme d'évolution progressive d'une variable   Lun 8 Juin - 22:54

moi je fais comme ça
et la variable glisse de 0 à 1
(1 non inclus)


Event - Create
nombreDETAPES=38
etape=0


Event - Step
variouble=etape/nombreDEtapes

etape+=1
if(etape>=nombreDEtapes) etape=0
Revenir en haut Aller en bas
vivicool
Utilisateur confirmé: Rang *


Nombre de messages: 177
Localisation: dans ma chambre
Projet Actuel: Open Game Creator (OGC)
Avancement:
48 / 10048 / 100


MessageSujet: Re: Algorithme d'évolution progressive d'une variable   Mar 9 Juin - 10:01

moi je fait comme ça :

variable+=(target-variable)/nombre_de_step (nombre_de_step ne représente pas vraiment le nombre de step mais s'en aproche)

c'est non linéraire mais ça donne bien

_________________
Revenir en haut Aller en bas
master47
Utilisateur confirmé: Rang *****


Nombre de messages: 2065
Localisation: Bruxelles, Belgique @ You Night Club
Projet Actuel: PacWars Multiplayers CORE


PROJET PACWARS EN PAUSE : EXAMENS -.-
Avancement:
79 / 10079 / 100


MessageSujet: Re: Algorithme d'évolution progressive d'une variable   Mar 9 Juin - 11:11

Lol, sans vouloir te vexer :

De 1: c'est pas une question d'utilisateur confirmé, tout le monde sait faire un changement de variable progressif, comme quand tu veux faire un effet de fondu.

De 2: faire un gex pour ça ça ne sert à rien...

De 3: si tu veux faire un vrai effet de fondu, comme pour un déplacement de vue en fondu, utilise plutôt un facteur d'arrondi, qui divise la différence entre la variable de l'instant, et la variable destination. C'est plus compliqué évidemment. Dans 5min je met un exemple de view tracking pour que tu comprenne mieux.

Voila

EDIT:

Voila, ça c'est un beau smooth.

http://olivierkaisin.co.cc/uploader/files/olivier/ViewSmoothMouvement.gm6

C'est le principe utilisé dans pacwars

_________________


Sachem a écrit:

lol master qui joue de la mandoline


Willing mi softly baby
Revenir en haut Aller en bas
http://soxx.mimilsgraph.net
Dardelare
Débutant


Nombre de messages: 17
Avancement:
0 / 1000 / 100


MessageSujet: Re: Algorithme d'évolution progressive d'une variable   Jeu 25 Juin - 18:02

Ok merci à tous.
Revenir en haut Aller en bas
[TheDarkTiger]
Modérateur 'Programmation'


Nombre de messages: 6165
Localisation: Essonne
Avancement:
0 / 1000 / 100


MessageSujet: Re: Algorithme d'évolution progressive d'une variable   Lun 20 Juil - 17:13

Déplacé d'aide confirmé à Scipts GML.

_________________
Bonne chance pour vos projets actuels!
Prêt à aider ceux qui en ont besoin ^^

actuellement à Liverpool http://leaveherpool.canalblog.com/

Bienvenue au 1388eme utilisateur : lionelvader !
Revenir en haut Aller en bas
http://www.membres.lycos.fr/thedarkminousite/
 

Algorithme d'évolution progressive d'une variable

Voir le sujet précédent Voir le sujet suivant 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 :: Programmation :: Scripts GML-
Poster un nouveau sujet   Répondre au sujet