Page 1 sur 1
[OK] Changer le champs d'une structure (ds procédure/macro)
Publié : mar. 01/nov./2011 17:18
par blendman
salut
J'aimerai savoir s'il est possible de faire ce genre de chose :
Code : Tout sélectionner
Structure s_option
shado.s
blur.s
light.s
EndStructure
opt.s_option
Structure buton
txt$
EndStructure
buton.buton
Macro changeOption(param,val)
opt\param = Str(val)
EndMacro
changeOption(shado.s,2)
Debug opt\shado
buton\txt$ = "shado"
changeOption(buton\txt$,2)
Debug opt\shado
En fait, j'avais utilisé ce principe avec un gadget, et je récupérer "shado" avec getgadgettext() et ça marchait.
Mais je n'arrive pas ici, et je n'ai pas droit aux gadgets.
En fait, j'ai crée des cases à cocher dans mon jeu, et j'aimerai effectuer les changements sans devoir les noté sur chaque case à cocher, je voulais utiliser une procédure ou une macro pour ça (car j'ai beaucoup de cases à cocher sur certains menus

)
EDIT : En fait, je chercher le moyen de changer le paramètre/champs d'un structure dans une macro ou une procédure, je ne sais pas si c'est possible
Avez-vous une idée d'une telle manipulation ?
Merci
Re: macro et texte en paramètre
Publié : mar. 01/nov./2011 23:11
par PAPIPP
Bonjour blendman.
Peut être comme cela.
Code : Tout sélectionner
Structure s_option
shado.s
blur.l
light.s
EndStructure
opt.s_option
Structure buton
txt$
EndStructure
buton.buton
Macro changeOption(param,val)
opt\param=val
EndMacro
changeOption(shado,Str(2))
Debug opt\shado
buton\txt$="shado"
changeOption(shado,Str(4))
Debug opt\shado
changeOption(blur,7)
Debug opt\blur
text$="Bonjour"
changeOption(light,text$)
Debug opt\light
Re: macro et texte en paramètre
Publié : mer. 02/nov./2011 10:01
par blendman
ah mince, je me suis trompé dans mon énoncé, désolé, je voulais dire ça (j'ai corrigé le 1er message):
Code : Tout sélectionner
buton\txt$ = "shado"
changeOption(buton\txt$ ,2)
Debug opt\shado
En fait, je souhaite remplacer buton\txt$ par shado,
- et donc changeoption(buton\txt$ ,2) deviendrait : changeoption(shado ,2)
- et j'aurai comme résultat opt\shado=2
En fait, je chercher le moyen de changer le paramètre/champs d'un structure dans une macro ou une procédure, je ne sais pas si c'est possible
Re: obtenir le champs d'une structure dans une procédure/mac
Publié : mer. 02/nov./2011 11:40
par PAPIPP
Bonjour Bledman
OK Alors comme cela
Code : Tout sélectionner
Structure s_option
shado.s
blur.l
light.s
EndStructure
opt.s_option
Structure buton
txt$
EndStructure
buton.buton
Macro chg(champ)
champ
EndMacro
; Macro changeOption(param,val)
; opt\param=val
; EndMacro
Macro chgOpt(param,val)
opt\chg(param)=val
EndMacro
; changeOption(shado,Str(2))
; Debug opt\shado
;
; buton\txt$="shado"
; changeOption(shado,Str(4))
; Debug opt\shado
; changeOption(blur,7)
; Debug opt\blur
; text$="Bonjour"
; changeOption(light,text$)
; Debug opt\light
text$="Bonjour 2"
chgOpt(shado,text$)
Debug opt\shado
chgOpt(Blur,5)
Debug opt\blur
Re: obtenir le champs d'une structure dans une procédure/mac
Publié : mer. 02/nov./2011 12:00
par blendman
Merci, mais hélas, ce n'est toujours pas ça :p
Voici ce que je veux faire :
Je veux qu'il me remplace : buton\txt$ dans chgOpt(buton\txt$,Str(4)) et donc que j'obtienne : chgOpt(shado,Str(4)) (car buton\txt$="shado")
et donc que le Debug opt\shado me donne 4
je ne sais pas si c'est possible

Re: Changer le champs d'une structure dans une procédure/mac
Publié : mer. 02/nov./2011 19:57
par blendman
bon, je crois avoir trouvé une solution pas mal.
L'utilité de cette technique, c'est pour réaliser une interface avec un screen, donc des interfaces dans les jeux

!
Le code :
Code : Tout sélectionner
Structure s_option
ok.a
EndStructure
Global NewMap option.s_option()
Procedure AddElmt(key$,val.a=0)
AddMapElement(option(),key$)
option(key$)\ok = val
EndProcedure
AddElmt("Shado")
AddElmt("Light")
AddElmt("Blur")
Structure buton
txt$
EndStructure
buton.buton
Macro chgOpt(param,val)
option(param)\ok=val
Debug option(param)\ok
EndMacro
buton\txt$="shado$"
chgOpt(buton\txt$,1)
buton\txt$="Blur"
chgOpt(buton\txt$,2)
Explication :
- en gros, dans un jeu, on peut avoir des options ou devoir changer des variables en fonction de valeur données par des boutons . Avec des gadgets c'est facile, mais avec un screen pas de gadget disponible. Donc, on doit créer son interface. Et donc, en faisant quelque chose de simple comme : cliquer sur un bouton nous donne sa valeur + son nom, peut facilement maintenant modifier des variables de type options avec juste 2 ou 3 procédures, sans devoir faire un code trop long
Et là, cette technique marche super bien

.