| Les scripts (Pour les experts) | |
|
|
Auteur | Message |
---|
Playboy Utilisateur confirmé: Rang ***
Messages : 699 Localisation : Sur la lune Projet Actuel : Sur le pont du Charles de Playboy
| Sujet: Les scripts (Pour les experts) Lun 24 Nov 2008 - 16:44 | |
| Bonjour, J'ai un soucis dans la compréhension des scripts et des fonctions ... Déjà quelqu'un peut m'expliquer la différence ? Ensuite dans tout les langages que je connais toute fonction ne sort pas ses variables internes .. Elle les détruit dès qu'elle est terminée et ne retourne que ce qui est mis après le return .... Exemple (Langage Octave) - Code:
-
function carre=squared(X)
carre=X*X test=0
endfunction Ici si dans le programme vous faites (dans un langage GML) : - Code:
-
resultat=squared(5) //Admettons que la fonction fait en Octave passe draw_text(10,10,resultat) draw_text(10,30,carre) draw_text(10,60,test) Vous aurez une erreur pour carre et test. Exemple (Langage Python) - Code:
-
def squared(X) : carre=X*X test=0 return carre Ici si dans le programme vous faites (dans un langage GML) : - Code:
-
resultat=squared(5) //Admettons que la fonction fait en Python passe draw_text(10,10,resultat) draw_text(10,30,carre) draw_text(10,60,test) Vous aurez une erreur pour carre et test. Exemple (Langage GML) (Imaginez vous la fenêtre de script) - Code:
-
-------------------------------------|squared|------------------ |carre=argument0*argument0 | |test=0 | |return carre | -----------------------------------------------------------------
Ici si dans le programme vous faites (dans un langage GML) : - Code:
-
resultat=squared(5) //Pas à admettre elle passe de sur lol draw_text(10,10,resultat) draw_text(10,30,carre) draw_text(10,60,test) Et bien tout passe Et aucune erreur apparait .... Alors que bon ces variables sont internes à la fonction .... Ainsi moi je faisais des fonctions pour être sur que les variables internes mises dans celle ci n'interféreraient pas avec celle dans l'objet ... Or c'est le cas ... Et surtout à quoi sert le return alors puisque l'on peut appeler une variable de la fonction qui n'est pas retournée par le return .... Pouvez vous donc m'expliquer pourquoi la portée des variables est comme qui dirait local à l'objet et non pas à la fonction (ou script ?) _________________ [Démo du RPG (30 Juin 2009) = Aeris] ----------------------- [Jeux Finis/Mon topic = Laguna] - Spoiler:
|
|
| |
master47 Utilisateur confirmé: Rang *****
Messages : 2368 Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio
| Sujet: Re: Les scripts (Pour les experts) Lun 24 Nov 2008 - 17:06 | |
| La réponse est toute simple. Dans GM, il n'y a pas de distinction entre les variables déclarées lors de l'utilisation d'une fonction et celles de l'objet, alors que dans un autre langage de programmation plus strict, cette distinction oblige l'utilisation du return dans ta fonction, ou alors l'assignation de variables publiques. Quelque part, ce coté du GML le rend plus simple pour un utilisateur débutant, mais il est sûr qu'il est préférable de s'habituer à utiliser des return. |
|
| |
Playboy Utilisateur confirmé: Rang ***
Messages : 699 Localisation : Sur la lune Projet Actuel : Sur le pont du Charles de Playboy
| Sujet: Re: Les scripts (Pour les experts) Lun 24 Nov 2008 - 17:13 | |
| Sérieux ?! Je vois alors même pas l'intérêt d'avoir fait ce système s'il ne sert pas lol. Donc peu importe le return au final. Surtout que le return du GML est trop restrictif il ne permet pas de renvoyer une liste Exemple : laliste[1]=1 laliste[2]=2 return liste Bien la il pleure le programme et je crois qu'un jolie "unexcept error occur abort the game" apparait XD Donc voila quoi j'espère que cela sera corrigé dans les prochaines versions .... Au final pour éviter le problème de variables qui ressortent il suffit de faire une fonction que de argument0, argument1 etc ... Là de sur le return sert mais bon tout mes script ont besoin de plus de 16 variables .... impossible pour moi donc :'( Merci pour ta réponse _________________ [Démo du RPG (30 Juin 2009) = Aeris] ----------------------- [Jeux Finis/Mon topic = Laguna] - Spoiler:
|
|
| |
master47 Utilisateur confirmé: Rang *****
Messages : 2368 Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio
| Sujet: Re: Les scripts (Pour les experts) Lun 24 Nov 2008 - 17:20 | |
| Absolument pas, tu fais comme beaucoups de gens, tu ajoutes des "__" devant tes variables.
Ca te permet d'eviter d'assigner par erreur quelques variables importantes.
Puis, dans Game Maker tu peux aussi utiliser les variables globales, ce qui te permet d'avoir un +- équivalent simplifié de variables publiques. Ce qui en soi est tout à fait faisable dans un autre langage. |
|
| |
Playboy Utilisateur confirmé: Rang ***
Messages : 699 Localisation : Sur la lune Projet Actuel : Sur le pont du Charles de Playboy
| Sujet: Re: Les scripts (Pour les experts) Lun 24 Nov 2008 - 17:37 | |
| Hoooooooo vraiment pas bête de mettre un "_" devant pour être sur que cela n'interférera pas avec la suite ! Je le ferais pour les prochaines fonctions que je ferais ^^ Ça m'aideras beaucoup lol Grand merci à toi Master47 !! J'en ressort un peu moins bête de cette discussion _________________ [Démo du RPG (30 Juin 2009) = Aeris] ----------------------- [Jeux Finis/Mon topic = Laguna] - Spoiler:
|
|
| |
master47 Utilisateur confirmé: Rang *****
Messages : 2368 Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio
| Sujet: Re: Les scripts (Pour les experts) Lun 24 Nov 2008 - 17:47 | |
| Avec plaisir |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: Les scripts (Pour les experts) Lun 24 Nov 2008 - 18:00 | |
| pour retourner une liste, faut enfait retourner son pointeur. Le meilleur moyen? list=ds_list_create() lol, et tu peux retrouner list vu que c'est un pointeur! aucun langage digne de ce nom ne permet de retourner directement une liste _________________ Tous les icones de gm utilisables sur le cbna ICI |
|
| |
master47 Utilisateur confirmé: Rang *****
Messages : 2368 Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio
| Sujet: Re: Les scripts (Pour les experts) Lun 24 Nov 2008 - 18:20 | |
| |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: Les scripts (Pour les experts) Lun 24 Nov 2008 - 18:59 | |
| damned :create: _________________ Tous les icones de gm utilisables sur le cbna ICI |
|
| |
Levans Utilisateur confirmé: Rang *****
Messages : 1598 Localisation : France -> Île de France -> Essonne -> Gif sur Yvette
| Sujet: Re: Les scripts (Pour les experts) Jeu 27 Nov 2008 - 17:28 | |
| hum hum le GML reconnait tout à fait les variable locales à un script, il suffit de les initialiser correctement : - Citation :
- var variable1, variable2, ... variable23;
à placer au début du script, elle seront supprimées à la fin du script. |
|
| |
Playboy Utilisateur confirmé: Rang ***
Messages : 699 Localisation : Sur la lune Projet Actuel : Sur le pont du Charles de Playboy
| Sujet: Re: Les scripts (Pour les experts) Jeu 27 Nov 2008 - 23:46 | |
| Hum je croais que le GML n 'avait pas besoin d'initialiser les variables ?! On m'aurait donc mentie !! Bon bien alors je ferais des tests ^^. Merci pour cette petite subtilité ^^ Ca m'aiderais grandement si tu avait raison ! Merci pour ta réponse alors _________________ [Démo du RPG (30 Juin 2009) = Aeris] ----------------------- [Jeux Finis/Mon topic = Laguna] - Spoiler:
|
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: Les scripts (Pour les experts) Ven 28 Nov 2008 - 22:55 | |
| ha punaise je savais pas que les variable qu'on initialisait dans les script disparaissait après, c'est cool. |
|
| |
Contenu sponsorisé
| Sujet: Re: Les scripts (Pour les experts) | |
| |
|
| |
| Les scripts (Pour les experts) | |
|