| Raccourcir un long code | |
|
|
Auteur | Message |
---|
albisse Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Raccourcir un long code Mer 30 Avr 2014 - 19:20 | |
| Bonjour . J'ai un code de 88 lignes que je doit changer a chaque fois que je cree un objet , sois un gros travail ^^ Je voudrai savoir si c'est possible de le raccourcire en 8 lignes a peut près , je pense que c'est possible car a chaque fois c'est le même code mais avoir d'autre chiffres , mais vue que ce sont des variables qui change , je ne peut pas faire de boucle for ou repeat ( j'ai essayer pas mal de chose même si je pense que les boucles for ne serait pas utile ) . Je précise que le code est dans Step . Le code : - Code:
-
with craft_slot0 { if slot_n=0{if global.nb_cobble>0{global.slot_0=obj_drop_cobble ; global.spr_slot0=spr_cobble}else{slot_n+=1}} if slot_n=1{if global.nb_wood>0{global.slot_0=obj_drop_wood ; global.spr_slot0=spr_wood}else{slot_n+=1}} if slot_n=2{if global.nb_dirt>0{global.slot_0=obj_drop_dirt ; global.spr_slot0=spr_dirt}else{slot_n+=1}} if slot_n=3{if global.nb_arbre_plante>0{global.slot_0=obj_drop_arbre_plante ; global.spr_slot0=spr_arbre_plante}else{slot_n+=1}}
if slot_n>3{slot_n=0}}
//////////// slot2
with craft_slot1{ if slot_n=0{if global.nb_cobble>0{global.slot_1=obj_drop_cobble ; global.spr_slot1=spr_cobble}else{slot_n+=1}} if slot_n=1{if global.nb_wood>0{global.slot_1=obj_drop_wood ; global.spr_slot1=spr_wood}else{slot_n+=1}} if slot_n=2{if global.nb_dirt>0{global.slot_1=obj_drop_dirt ; global.spr_slot1=spr_dirt}else{slot_n+=1}} if slot_n=3{if global.nb_arbre_plante>0{global.slot_1=obj_drop_arbre_plante ; global.spr_slot1=spr_arbre_plante}else{slot_n+=1}}
if slot_n>3{slot_n=0}}
//////////// slot3
with craft_slot2{ if slot_n=0{if global.nb_cobble>0{global.slot_2=obj_drop_cobble ; global.spr_slot2=spr_cobble}else{slot_n+=1}} if slot_n=1{if global.nb_wood>0{global.slot_2=obj_drop_wood ; global.spr_slot2=spr_wood}else{slot_n+=1}} if slot_n=2{if global.nb_dirt>0{global.slot_2=obj_drop_dirt ; global.spr_slot2=spr_dirt}else{slot_n+=1}} if slot_n=3{if global.nb_arbre_plante>0{global.slot_2=obj_drop_arbre_plante ; global.spr_slot2=spr_arbre_plante}else{slot_n+=1}}
if slot_n>3{slot_n=0}}
//////////// slot4
with craft_slot3{ if slot_n=0{if global.nb_cobble>0{global.slot_3=obj_drop_cobble ; global.spr_slot3=spr_cobble}else{slot_n+=1}} if slot_n=1{if global.nb_wood>0{global.slot_3=obj_drop_wood ; global.spr_slot3=spr_wood}else{slot_n+=1}} if slot_n=2{if global.nb_dirt>0{global.slot_3=obj_drop_dirt ; global.spr_slot3=spr_dirt}else{slot_n+=1}} if slot_n=3{if global.nb_arbre_plante>0{global.slot_3=obj_drop_arbre_plante ; global.spr_slot3=spr_arbre_plante}else{slot_n+=1}}
if slot_n>3{slot_n=0}}
//////////// slot5
with craft_slot4{ if slot_n=0{if global.nb_cobble>0{global.slot_4=obj_drop_cobble ; global.spr_slot4=spr_cobble}else{slot_n+=1}} if slot_n=1{if global.nb_wood>0{global.slot_4=obj_drop_wood ; global.spr_slot4=spr_wood}else{slot_n+=1}} if slot_n=2{if global.nb_dirt>0{global.slot_4=obj_drop_dirt ; global.spr_slot4=spr_dirt}else{slot_n+=1}} if slot_n=3{if global.nb_arbre_plante>0{global.slot_4=obj_drop_arbre_plante ; global.spr_slot4=spr_arbre_plante}else{slot_n+=1}}
if slot_n>3{slot_n=0}}
//////////// slot6
with craft_slot5{ if slot_n=0{if global.nb_cobble>0{global.slot_5=obj_drop_cobble ; global.spr_slot5=spr_cobble}else{slot_n+=1}} if slot_n=1{if global.nb_wood>0{global.slot_5=obj_drop_wood ; global.spr_slot5=spr_wood}else{slot_n+=1}} if slot_n=2{if global.nb_dirt>0{global.slot_5=obj_drop_dirt ; global.spr_slot5=spr_dirt}else{slot_n+=1}} if slot_n=3{if global.nb_arbre_plante>0{global.slot_5=obj_drop_arbre_plante ; global.spr_slot5=spr_arbre_plante}else{slot_n+=1}}
if slot_n>3{slot_n=0}}
//////////// slot7
with craft_slot6{ if slot_n=0{if global.nb_cobble>0{global.slot_6=obj_drop_cobble ; global.spr_slot6=spr_cobble}else{slot_n+=1}} if slot_n=1{if global.nb_wood>0{global.slot_6=obj_drop_wood ; global.spr_slot6=spr_wood}else{slot_n+=1}} if slot_n=2{if global.nb_dirt>0{global.slot_6=obj_drop_dirt ; global.spr_slot6=spr_dirt}else{slot_n+=1}} if slot_n=3{if global.nb_arbre_plante>0{global.slot_6=obj_drop_arbre_plante ; global.spr_slot6=spr_arbre_plante}else{slot_n+=1}}
if slot_n>3{slot_n=0}}
//////////// slot8
with craft_slot7{ if slot_n=0{if global.nb_cobble>0{global.slot_7=obj_drop_cobble ; global.spr_slot7=spr_cobble}else{slot_n+=1}} if slot_n=1{if global.nb_wood>0{global.slot_7=obj_drop_wood ; global.spr_slot7=spr_wood}else{slot_n+=1}} if slot_n=2{if global.nb_dirt>0{global.slot_7=obj_drop_dirt ; global.spr_slot7=spr_dirt}else{slot_n+=1}} if slot_n=3{if global.nb_arbre_plante>0{global.slot_7=obj_drop_arbre_plante ; global.spr_slot7=spr_arbre_plante}else{slot_n+=1}}
if slot_n>3{slot_n=0}}
//////////// slot9
with craft_slot8{ if slot_n=0{if global.nb_cobble>0{global.slot_8=obj_drop_cobble ; global.spr_slot8=spr_cobble}else{slot_n+=1}} if slot_n=1{if global.nb_wood>0{global.slot_8=obj_drop_wood ; global.spr_slot8=spr_wood}else{slot_n+=1}} if slot_n=2{if global.nb_dirt>0{global.slot_8=obj_drop_dirt ; global.spr_slot8=spr_dirt}else{slot_n+=1}} if slot_n=3{if global.nb_arbre_plante>0{global.slot_8=obj_drop_arbre_plante ; global.spr_slot8=spr_arbre_plante}else{slot_n+=1}}
if slot_n>3{slot_n=0}} Merci d'avance , sa m'aidera Beaucoup si vous savez comment faire , car changer a chaque fois sa , me donne envie de me tué ! ^^ |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Raccourcir un long code Mer 30 Avr 2014 - 19:24 | |
| |
|
| |
Rem_101 *Excellent utilisateur*
Messages : 4356 Localisation : chez votre marchand de journaux
| Sujet: Re: Raccourcir un long code Mer 30 Avr 2014 - 19:29 | |
| ^ fais des fonctions. |
|
| |
Herdge Très bonne participation
Messages : 164
| Sujet: Re: Raccourcir un long code Mer 30 Avr 2014 - 20:05 | |
| J'en profite pour poser une question. Dans ton projet Bomberman Onilink tu utilises quasiment que des scripts et très peu de codes dans les objets. Cela rend évidemment tout plus élégant et plus lisible. Je me demandais si cela optimisait aussi l'exécution ou non ? |
|
| |
albisse Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: Raccourcir un long code Mer 30 Avr 2014 - 20:34 | |
| J'ai du mal m'exprimer ^^ C'est un seul et meme code sur un seul et meme objet , donc un script ne me servirait a rien , enfin je pense .
|
|
| |
chopsuey Utilisateur confirmé: Rang ***
Messages : 523 Localisation : saint etienne Projet Actuel : All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
...
| Sujet: Re: Raccourcir un long code Mer 30 Avr 2014 - 21:01 | |
| Ben oui script j'ai la flemme d’essayer de comprendre ce que tu as voulu faire mais en gros: tu fais un script au nom que tu veux - Code:
-
if slot_n=0{if global.nb_cobble>0{argument0=obj_drop_cobble ; argument1=spr_cobble}else{slot_n+=1}} if slot_n=1{if global.nb_wood>0{argument0=obj_drop_wood ; argument1=spr_wood}else{slot_n+=1}} if slot_n=2{if global.nb_dirt>0{argument0=obj_drop_dirt ; argument1=spr_dirt}else{slot_n+=1}} if slot_n=3{if global.nb_arbre_plante>0{argument0=obj_drop_arbre_plante ; argument0=spr_arbre_plante}else{slot_n+=1
tu appel ton script avec les bon arguments: - Code:
-
with craft_slot1{ scr_nom(global.slot_1,global.spr_slot1)}
with craft_slot2{ scr_nom(global.slot_2,global.spr_slot2)}
with craft_slot3{ scr_nom(global.slot_3,global.spr_slot3)}
with craft_slot4{ scr_nom(global.slot_4,global.spr_slot4)}
etc... Herdge Non les scripts c'est juste pour l'aspect pratique et visuel rien d'autre. _________________ - Spoiler:
Dernière édition par chopsuey le Mer 30 Avr 2014 - 22:19, édité 1 fois |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Raccourcir un long code Mer 30 Avr 2014 - 21:45 | |
| Avec GM ça ne rend pas l’exécution plus rapide, mais dans un langage compilé le fait de réduire la taille du code peut permettre une exécution plus rapide grâce a la mémoire cache du processeur, ainsi que les optimisations apportées par le compilateur. Dans tous les cas il faut vraiment utiliser dès que possible des fonctions, car ça sert avant tout a rendre le code plus clair, en plus de diminuer sa taille. Un bon code avec des fonctions aux noms explicite n'aurait même pas besoin de commentaires, c'est pour dire a quel point c'est vital d'en faire usage dès que cela est possible. |
|
| |
albisse Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: Raccourcir un long code Mer 30 Avr 2014 - 22:45 | |
| ha ok je n'avais pas conpris ou vous vouliez métré un script autant pour moi , merci beaucoup en tout cas . |
|
| |
albisse Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: Raccourcir un long code Mer 30 Avr 2014 - 23:24 | |
| j'ai un petit problème , j'ai bien mis mon script et tout , mais le jeu se comporte comme si justement le code n'était pas la , pourtant mon script est bien : Nom du script : scr_craft_if - Code:
-
if slot_n=0{if global.nb_cobble>0{argument0=obj_drop_cobble ; argument1=spr_cobble}else{slot_n+=1}} if slot_n=1{if global.nb_wood>0{argument0=obj_drop_wood ; argument1=spr_wood}else{slot_n+=1}} if slot_n=2{if global.nb_dirt>0{argument0=obj_drop_dirt ; argument1=spr_dirt}else{slot_n+=1}} if slot_n=3{if global.nb_arbre_plante>0{argument0=obj_drop_arbre_plante ;argument1=spr_arbre_plante}else{slot_n+=1}}
if slot_n>3{slot_n=0} et le code que j'ai mis : - Code:
-
with craft_slot0{scr_craft_if(global.slot_0,global.spr_slot0)} with craft_slot1{scr_craft_if(global.slot_1,global.spr_slot1)} with craft_slot2{scr_craft_if(global.slot_2,global.spr_slot2)} with craft_slot3{scr_craft_if(global.slot_3,global.spr_slot3)} with craft_slot4{scr_craft_if(global.slot_4,global.spr_slot4)} with craft_slot5{scr_craft_if(global.slot_5,global.spr_slot5)} with craft_slot6{scr_craft_if(global.slot_6,global.spr_slot6)} with craft_slot7{scr_craft_if(global.slot_7,global.spr_slot7)} with craft_slot8{scr_craft_if(global.slot_8,global.spr_slot8)} Mais comme j'ai dit le jeu se comporte comme si le script était pas la :/ |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Raccourcir un long code Jeu 1 Mai 2014 - 9:27 | |
| Les arguments sont des copies des paramètres envoyés a la fonction. Voila pourquoi fallait utiliser un tableau pour les slots (t'aurais juste eu a envoyer des indices en paramètres), car maintenant tu es nickay. |
|
| |
albisse Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: Raccourcir un long code Jeu 1 Mai 2014 - 11:51 | |
| J'utiliserai alors un tableau Merci bien pour l'info ^^ |
|
| |
albisse Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: Raccourcir un long code Jeu 1 Mai 2014 - 12:47 | |
| Je ne comprend pas meme avec un tableau sa ne marche pas :/
j'ai bien mis : with craft_slot0{scr_craft_if(global.slot[0],global.slot_spr[0])}
dans le draw :
with craft_slot0{ if global.slot_spr[0] !=0 {draw_sprite(global.slot_spr[0],0,x,y)}}
j'ai initialiser les variable : global.slot[0]=0 et global.slot_spr[0]=0
Une idée ?
|
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Raccourcir un long code Jeu 1 Mai 2014 - 13:03 | |
| Faut pas passer le tableau, mais l'indice du tableau:
script: if(slot_n==0) {if global.nb_cobble>0{global.slot[argument0]=obj_drop_cobble ; global.slot[argument1]=spr_cobble}else{slot_n+=1}}
appel: with craft_slot0{scr_craft_if(0, 0)} |
|
| |
albisse Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: Raccourcir un long code Jeu 1 Mai 2014 - 14:06 | |
| |
|
| |
Contenu sponsorisé
| Sujet: Re: Raccourcir un long code | |
| |
|
| |
| Raccourcir un long code | |
|