AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment :
Funko POP! Jumbo One Piece Kaido Dragon Form : ...
Voir le deal

 

 Raccourcir un long code

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



Messages : 233

Raccourcir un long code  Empty
MessageSujet: Raccourcir un long code    Raccourcir un long code  EmptyMer 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é ! ^^
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Raccourcir un long code  Empty
MessageSujet: Re: Raccourcir un long code    Raccourcir un long code  EmptyMer 30 Avr 2014 - 19:24

scripts

_________________
Raccourcir un long code  Runningpotato1Raccourcir un long code  TvF6GED Raccourcir un long code  MdetltS
Revenir en haut Aller en bas
Rem_101
*Excellent utilisateur*
Rem_101


Messages : 4356
Localisation : chez votre marchand de journaux

Raccourcir un long code  Empty
MessageSujet: Re: Raccourcir un long code    Raccourcir un long code  EmptyMer 30 Avr 2014 - 19:29

^ fais des fonctions. Smile
Revenir en haut Aller en bas
Herdge
Très bonne participation
Herdge


Messages : 164

Raccourcir un long code  Empty
MessageSujet: Re: Raccourcir un long code    Raccourcir un long code  EmptyMer 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 ?
Revenir en haut Aller en bas
albisse
Utilisateur confirmé: Rang *



Messages : 233

Raccourcir un long code  Empty
MessageSujet: Re: Raccourcir un long code    Raccourcir un long code  EmptyMer 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 .

Revenir en haut Aller en bas
chopsuey
Utilisateur confirmé: Rang ***
chopsuey


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
...

Raccourcir un long code  Empty
MessageSujet: Re: Raccourcir un long code    Raccourcir un long code  EmptyMer 30 Avr 2014 - 21:01

Ben oui script  crossa  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
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Raccourcir un long code  Empty
MessageSujet: Re: Raccourcir un long code    Raccourcir un long code  EmptyMer 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.

_________________
Raccourcir un long code  Runningpotato1Raccourcir un long code  TvF6GED Raccourcir un long code  MdetltS
Revenir en haut Aller en bas
albisse
Utilisateur confirmé: Rang *



Messages : 233

Raccourcir un long code  Empty
MessageSujet: Re: Raccourcir un long code    Raccourcir un long code  EmptyMer 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 .
Revenir en haut Aller en bas
albisse
Utilisateur confirmé: Rang *



Messages : 233

Raccourcir un long code  Empty
MessageSujet: Re: Raccourcir un long code    Raccourcir un long code  EmptyMer 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 :/
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Raccourcir un long code  Empty
MessageSujet: Re: Raccourcir un long code    Raccourcir un long code  EmptyJeu 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.

_________________
Raccourcir un long code  Runningpotato1Raccourcir un long code  TvF6GED Raccourcir un long code  MdetltS
Revenir en haut Aller en bas
albisse
Utilisateur confirmé: Rang *



Messages : 233

Raccourcir un long code  Empty
MessageSujet: Re: Raccourcir un long code    Raccourcir un long code  EmptyJeu 1 Mai 2014 - 11:51

J'utiliserai alors un tableau Merci bien pour l'info ^^
Revenir en haut Aller en bas
albisse
Utilisateur confirmé: Rang *



Messages : 233

Raccourcir un long code  Empty
MessageSujet: Re: Raccourcir un long code    Raccourcir un long code  EmptyJeu 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 ?

Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Raccourcir un long code  Empty
MessageSujet: Re: Raccourcir un long code    Raccourcir un long code  EmptyJeu 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)}

_________________
Raccourcir un long code  Runningpotato1Raccourcir un long code  TvF6GED Raccourcir un long code  MdetltS
Revenir en haut Aller en bas
albisse
Utilisateur confirmé: Rang *



Messages : 233

Raccourcir un long code  Empty
MessageSujet: Re: Raccourcir un long code    Raccourcir un long code  EmptyJeu 1 Mai 2014 - 14:06

Exacte merci bien ^^
Revenir en haut Aller en bas
Contenu sponsorisé





Raccourcir un long code  Empty
MessageSujet: Re: Raccourcir un long code    Raccourcir un long code  Empty

Revenir en haut Aller en bas
 
Raccourcir un long code
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Résolu] Chargement trop long !
» Problème Keyboard Press trop long
» Créer un extrait d'un texte trop long.
» [Tutoriel] Le Blend mode en long et en large
» cherche professeur pour en connaitre plus long

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