AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  

 

 Les scripts (Pour les experts)

Aller en bas 
5 participants
AuteurMessage
Playboy
Utilisateur confirmé: Rang ***
Playboy


Messages : 699
Localisation : Sur la lune
Projet Actuel : Sur le pont du Charles de Playboy

Les scripts (Pour les experts) Empty
MessageSujet: Les scripts (Pour les experts)   Les scripts (Pour les experts) EmptyLun 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 Sad 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:
Revenir en haut Aller en bas
master47
Utilisateur confirmé: Rang *****
master47


Messages : 2368
Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio

Les scripts (Pour les experts) Empty
MessageSujet: Re: Les scripts (Pour les experts)   Les scripts (Pour les experts) EmptyLun 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.
Revenir en haut Aller en bas
http://theperfectpattern.tumblr.com
Playboy
Utilisateur confirmé: Rang ***
Playboy


Messages : 699
Localisation : Sur la lune
Projet Actuel : Sur le pont du Charles de Playboy

Les scripts (Pour les experts) Empty
MessageSujet: Re: Les scripts (Pour les experts)   Les scripts (Pour les experts) EmptyLun 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 Wink

_________________
[Démo du RPG (30 Juin 2009) = Aeris] ----------------------- [Jeux Finis/Mon topic = Laguna]
Spoiler:
Revenir en haut Aller en bas
master47
Utilisateur confirmé: Rang *****
master47


Messages : 2368
Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio

Les scripts (Pour les experts) Empty
MessageSujet: Re: Les scripts (Pour les experts)   Les scripts (Pour les experts) EmptyLun 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.
Revenir en haut Aller en bas
http://theperfectpattern.tumblr.com
Playboy
Utilisateur confirmé: Rang ***
Playboy


Messages : 699
Localisation : Sur la lune
Projet Actuel : Sur le pont du Charles de Playboy

Les scripts (Pour les experts) Empty
MessageSujet: Re: Les scripts (Pour les experts)   Les scripts (Pour les experts) EmptyLun 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 rouge super

_________________
[Démo du RPG (30 Juin 2009) = Aeris] ----------------------- [Jeux Finis/Mon topic = Laguna]
Spoiler:
Revenir en haut Aller en bas
master47
Utilisateur confirmé: Rang *****
master47


Messages : 2368
Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio

Les scripts (Pour les experts) Empty
MessageSujet: Re: Les scripts (Pour les experts)   Les scripts (Pour les experts) EmptyLun 24 Nov 2008 - 17:47

Avec plaisir noel
Revenir en haut Aller en bas
http://theperfectpattern.tumblr.com
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

Les scripts (Pour les experts) Empty
MessageSujet: Re: Les scripts (Pour les experts)   Les scripts (Pour les experts) EmptyLun 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 crossa

_________________
Les scripts (Pour les experts) Control-commentTous les icones de gm utilisables sur le cbna ICI  Les scripts (Pour les experts) Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
master47
Utilisateur confirmé: Rang *****
master47


Messages : 2368
Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio

Les scripts (Pour les experts) Empty
MessageSujet: Re: Les scripts (Pour les experts)   Les scripts (Pour les experts) EmptyLun 24 Nov 2008 - 18:20

......... C# Very Happy Very Happy Very Happy
Revenir en haut Aller en bas
http://theperfectpattern.tumblr.com
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

Les scripts (Pour les experts) Empty
MessageSujet: Re: Les scripts (Pour les experts)   Les scripts (Pour les experts) EmptyLun 24 Nov 2008 - 18:59

damned :create:

_________________
Les scripts (Pour les experts) Control-commentTous les icones de gm utilisables sur le cbna ICI  Les scripts (Pour les experts) Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
Levans
Utilisateur confirmé: Rang *****
Levans


Messages : 1598
Localisation : France -> Île de France -> Essonne -> Gif sur Yvette

Les scripts (Pour les experts) Empty
MessageSujet: Re: Les scripts (Pour les experts)   Les scripts (Pour les experts) EmptyJeu 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.
happy1

_________________


Tuto 39Dll, jeux multijoueurs sur internet :
fleche_d ici fleche_g

Les scripts (Pour les experts) Banniere
pour la compet n°7 coeur coeur
Revenir en haut Aller en bas
Playboy
Utilisateur confirmé: Rang ***
Playboy


Messages : 699
Localisation : Sur la lune
Projet Actuel : Sur le pont du Charles de Playboy

Les scripts (Pour les experts) Empty
MessageSujet: Re: Les scripts (Pour les experts)   Les scripts (Pour les experts) EmptyJeu 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 Wink

_________________
[Démo du RPG (30 Juin 2009) = Aeris] ----------------------- [Jeux Finis/Mon topic = Laguna]
Spoiler:
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro


Messages : 1483
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

Les scripts (Pour les experts) Empty
MessageSujet: Re: Les scripts (Pour les experts)   Les scripts (Pour les experts) EmptyVen 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.

_________________
Les scripts (Pour les experts) PochetteLes scripts (Pour les experts) Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
Contenu sponsorisé





Les scripts (Pour les experts) Empty
MessageSujet: Re: Les scripts (Pour les experts)   Les scripts (Pour les experts) Empty

Revenir en haut Aller en bas
 
Les scripts (Pour les experts)
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Scripts pour lightning avancé
» Script pour dessiner un cercle texturé [MAJ des scripts]
» j'ai un bug dans un de mes scripts ...
» svp les experts vnez
» Scripts d'options

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