| | Stocker des variables dans un array | |
| | Auteur | Message |
---|
Termite Utilisateur confirmé: Rang ****
Messages : 1005 Localisation : Dans ta charpente ! Projet Actuel : RayEngine 5.0
| Sujet: Stocker des variables dans un array Jeu 31 Déc 2009 - 15:48 | |
| Bonjour ! Alors voilà, je cherche à stocker les variables x,y et object_index d'objets dans un array (via des for loop) Le but du code est de stocker les variables, détruires toute les instances slave, et ensuite, les recréer au mêmes endroits, avec les même object_index Voilà le code entier : - Code:
-
for (s=0;s<=slavecount;s+=1) {
slave[s].x=sx[s] slave[s].y=sy[s] slave[s].object_index=sobj[s]
with (slave[s]) {instance_destroy()} }
if spawnzone>0 {
for (s=0;s<=slavecount;s+=1) {instance_create(sx[s],sy[s],sobj[s])} } spawnzone est un collision_rectangle tout bêtes slave c'est le numéro des instances (genre je met dans le creation code : - Code:
-
slave[0]=104859 slave[1]=104860 slave[2]=104896
slavecount=2
Je sais pas comment déclarer sx,sy et sobj dans le creation code, du coups il me dit qu'il connait pas ces variables.. Si quelqu'un peu m'apporter un chouilla d'aide Merci à tous et bonne année ! _________________ Because these are not the words of God, the same God that burnt the knowing.
|
| | | PHENIXprod Utilisateur confirmé: Rang ****
Messages : 835
| Sujet: Re: Stocker des variables dans un array Jeu 31 Déc 2009 - 15:58 | |
| Je ne sait pas si j'ai bien compris mais tu peux utiliser une grille (ds_grid), ça te permettra de faire un tableau double entrées et ça simplifiera ton stockage de données. Pour les utiliser tout est expliqué dans le fichier d'aide. |
| | | Termite Utilisateur confirmé: Rang ****
Messages : 1005 Localisation : Dans ta charpente ! Projet Actuel : RayEngine 5.0
| Sujet: Re: Stocker des variables dans un array Jeu 31 Déc 2009 - 15:58 | |
| - PHENIXprod a écrit:
- Je ne sait pas si j'ai bien compris mais tu peux utiliser une grille (ds_grid), ça te permettra de faire un tableau double entrées et ça simplifiera ton stockage de données. Pour les utiliser tout est expliqué dans le fichier d'aide.
J'y avais pensé, je vais tenter Merci l'ami :p Si tu pouvais m'expliquer vite fait la théorie pour stocker tout ça, ça serait sympa _________________ Because these are not the words of God, the same God that burnt the knowing.
|
| | | PHENIXprod Utilisateur confirmé: Rang ****
Messages : 835
| Sujet: Re: Stocker des variables dans un array Jeu 31 Déc 2009 - 16:04 | |
| ds_grid_create(w,h) Crée une nouvelle grille de largeur w et de hauteur h. La fonction retourne un entier représentant l'id de la grille qui devra être utilisé par toutes les fonctions devant accéder à la nouvelle grille créée. ds_grid_destroy(id) Détruit la grille d'ID id, libérant ainsi la mémoire utilisée. Ne pas oublier d'invoquer cette fonction quand vous n'aurez plus besoin d'utiliser cette grille. ds_grid_resize(id,w,h) Redimensionne la grille d'ID id avec les nouvelles largeur w et hauteur h. Les cellules déjà existantes conserveront leur valeur originale. ds_grid_width(id) Retourne la largeur de la grille d'ID id. ds_grid_height(id) Retourne la hauteur de la grille d'ID id. ds_grid_clear(id,val) Initialise le contenu de la grille d'ID id, avec la valeur indiquée val (val peut être aussi bien un nombre qu'une chaîne). ds_grid_set(id,x,y,val) Initialise la cellule indiquée x,y de la grille d'ID id avec la valeur mentionnée val (qui peut être un nombre ou une chaîne). ds_grid_add(id,x,y,val) Ajoute la valeur val dans la cellule indiquée x,y de la grille d'ID id. En ce qui concerne les chaînes, cela correspond à une concaténation. ds_grid_multiply(id,x,y,val) Multiplie la valeur val par la cellule indiquée x,y de la grille d'ID id. Cette fonction ne concerne uniquement que les nombres. ds_grid_set_region(id,x1,y1,x2,y2,val) Initialise toutes les cellules d'une région donnée x1,y1,x2,y2 de la grille d'ID id avec la valeur indiquée val (concerne aussi bien les nombres que les chaînes de caractères). ds_grid_add_region(id,x1,y1,x2,y2,val) Ajoute la valeur val aux cellules de la plage x1,y1,x2,y2 dans la grille d'ID id. En ce qui concerne les chaînes, cela correspond à une concaténation. ds_grid_multiply_region(id,x1,y1,x2,y2,val) Multiplie par la valeur val les cellules de la plage x1,y1,x2,y2 de la grille d'ID id. Cette fonction ne concerne uniquement que les nombres. ds_grid_set_disk(id,xm,ym,r,val) Initialise avec la valeur val toutes les cellules du disque avec comme centre xm,ym et rayon r. ds_grid_add_disk(id,xm,ym,r,val) Ajoute la valeur val à toutes les cellules du disque de centre xm,ym et de rayon r. ds_grid_multiply_disk(id,xm,ym,r,val) Multiplie par la valeur val toutes les cellules du disque de centre xm,ym et de rayon r. ds_grid_get(id,x,y) Retourne la valeur de la cellule indiquée x,y de la grille d'ID id. ds_grid_get_sum(id,x1,y1,x2,y2) Retourne la somme des valeurs de cellules de la plage x1,y1,x2,y2 de la grille d'ID id. Ne fonctionne que si les cellules ne contiennent que des nombres. ds_grid_get_max(id,x1,y1,x2,y2) Retourne le maximum des valeurs de cellules de la plage x1,y1,x2,y2 de la grille d'ID id. Ne fonctionne que si les cellules ne contiennent que des nombres. ds_grid_get_min(id,x1,y1,x2,y2) Retourne le minimum des valeurs de cellules de la plage x1,y1,x2,y2 de la grille d'ID id. Ne fonctionne que si les cellules ne contiennent que des nombres. ds_grid_get_mean(id,x1,y1,x2,y2) Retourne la moyenne des valeurs de cellules de la plage x1,y1,x2,y2 de la grille d'ID id. Ne fonctionne que si les cellules ne contiennent que des nombres. ds_grid_get_disk_sum(id,xm,ym,r) Retourne la somme des valeurs des cellules du disque. ds_grid_get_disk_min(id,xm,ym,r) Retourne le minimum des valeurs des cellules du disque. ds_grid_get_disk_max(id,xm,ym,r) Retourne le maximum des valeurs des cellules du disque. ds_grid_get_disk_mean(id,xm,ym,r) Retourne la moyenne des valeurs des cellules du disque. ds_grid_value_exists(id,x1,y1,x2,y2,val) Indique si la valeur val apparaît quelque part dans la plage x1,y1,x2,y2. ds_grid_value_x(id,x1,y1,x2,y2,val) Retourne l'abscisse x de la cellule dans laquelle la valeur val apparaît dans la plage x1,y1,x2,y2. ds_grid_value_y(id,x1,y1,x2,y2,val) Retourne l'ordonnée y de la cellule dans laquelle la valeur val apparaît dans la plage x1,y1,x2,y2. ds_grid_value_disk_exists(id,xm,ym,r,val) Indique si la valeur val apparaît quelque part dans le disque. ds_grid_value_disk_x(id,xm,ym,r,val) Retourne l'abscisse x de la cellule dans laquelle la valeur val apparaît dans le disque. ds_grid_value_disk_y(id,xm,ym,r,val) Retourne l'ordonnée y de la cellule dans laquelle la valeur val apparaît dans le disque. |
| | | Termite Utilisateur confirmé: Rang ****
Messages : 1005 Localisation : Dans ta charpente ! Projet Actuel : RayEngine 5.0
| Sujet: Re: Stocker des variables dans un array Jeu 31 Déc 2009 - 16:21 | |
| - PHENIXprod a écrit:
- ds_grid_create(w,h) Crée une nouvelle grille de largeur w et de hauteur h. La fonction retourne un entier représentant l'id de la grille qui devra être utilisé par toutes les fonctions devant accéder à la nouvelle grille créée.
ds_grid_destroy(id) Détruit la grille d'ID id, libérant ainsi la mémoire utilisée. Ne pas oublier d'invoquer cette fonction quand vous n'aurez plus besoin d'utiliser cette grille. ds_grid_resize(id,w,h) Redimensionne la grille d'ID id avec les nouvelles largeur w et hauteur h. Les cellules déjà existantes conserveront leur valeur originale. ds_grid_width(id) Retourne la largeur de la grille d'ID id. ds_grid_height(id) Retourne la hauteur de la grille d'ID id. ds_grid_clear(id,val) Initialise le contenu de la grille d'ID id, avec la valeur indiquée val (val peut être aussi bien un nombre qu'une chaîne). ds_grid_set(id,x,y,val) Initialise la cellule indiquée x,y de la grille d'ID id avec la valeur mentionnée val (qui peut être un nombre ou une chaîne). ds_grid_add(id,x,y,val) Ajoute la valeur val dans la cellule indiquée x,y de la grille d'ID id. En ce qui concerne les chaînes, cela correspond à une concaténation. ds_grid_multiply(id,x,y,val) Multiplie la valeur val par la cellule indiquée x,y de la grille d'ID id. Cette fonction ne concerne uniquement que les nombres. ds_grid_set_region(id,x1,y1,x2,y2,val) Initialise toutes les cellules d'une région donnée x1,y1,x2,y2 de la grille d'ID id avec la valeur indiquée val (concerne aussi bien les nombres que les chaînes de caractères). ds_grid_add_region(id,x1,y1,x2,y2,val) Ajoute la valeur val aux cellules de la plage x1,y1,x2,y2 dans la grille d'ID id. En ce qui concerne les chaînes, cela correspond à une concaténation. ds_grid_multiply_region(id,x1,y1,x2,y2,val) Multiplie par la valeur val les cellules de la plage x1,y1,x2,y2 de la grille d'ID id. Cette fonction ne concerne uniquement que les nombres. ds_grid_set_disk(id,xm,ym,r,val) Initialise avec la valeur val toutes les cellules du disque avec comme centre xm,ym et rayon r. ds_grid_add_disk(id,xm,ym,r,val) Ajoute la valeur val à toutes les cellules du disque de centre xm,ym et de rayon r. ds_grid_multiply_disk(id,xm,ym,r,val) Multiplie par la valeur val toutes les cellules du disque de centre xm,ym et de rayon r. ds_grid_get(id,x,y) Retourne la valeur de la cellule indiquée x,y de la grille d'ID id. ds_grid_get_sum(id,x1,y1,x2,y2) Retourne la somme des valeurs de cellules de la plage x1,y1,x2,y2 de la grille d'ID id. Ne fonctionne que si les cellules ne contiennent que des nombres. ds_grid_get_max(id,x1,y1,x2,y2) Retourne le maximum des valeurs de cellules de la plage x1,y1,x2,y2 de la grille d'ID id. Ne fonctionne que si les cellules ne contiennent que des nombres. ds_grid_get_min(id,x1,y1,x2,y2) Retourne le minimum des valeurs de cellules de la plage x1,y1,x2,y2 de la grille d'ID id. Ne fonctionne que si les cellules ne contiennent que des nombres. ds_grid_get_mean(id,x1,y1,x2,y2) Retourne la moyenne des valeurs de cellules de la plage x1,y1,x2,y2 de la grille d'ID id. Ne fonctionne que si les cellules ne contiennent que des nombres. ds_grid_get_disk_sum(id,xm,ym,r) Retourne la somme des valeurs des cellules du disque. ds_grid_get_disk_min(id,xm,ym,r) Retourne le minimum des valeurs des cellules du disque. ds_grid_get_disk_max(id,xm,ym,r) Retourne le maximum des valeurs des cellules du disque. ds_grid_get_disk_mean(id,xm,ym,r) Retourne la moyenne des valeurs des cellules du disque. ds_grid_value_exists(id,x1,y1,x2,y2,val) Indique si la valeur val apparaît quelque part dans la plage x1,y1,x2,y2. ds_grid_value_x(id,x1,y1,x2,y2,val) Retourne l'abscisse x de la cellule dans laquelle la valeur val apparaît dans la plage x1,y1,x2,y2. ds_grid_value_y(id,x1,y1,x2,y2,val) Retourne l'ordonnée y de la cellule dans laquelle la valeur val apparaît dans la plage x1,y1,x2,y2. ds_grid_value_disk_exists(id,xm,ym,r,val) Indique si la valeur val apparaît quelque part dans le disque. ds_grid_value_disk_x(id,xm,ym,r,val) Retourne l'abscisse x de la cellule dans laquelle la valeur val apparaît dans le disque. ds_grid_value_disk_y(id,xm,ym,r,val) Retourne l'ordonnée y de la cellule dans laquelle la valeur val apparaît dans le disque. Vivi j'ai la doc, mais la théorie pour ce cas là (comment l'utiliser on va dire, dans ce cas précis ) _________________ Because these are not the words of God, the same God that burnt the knowing.
|
| | | PHENIXprod Utilisateur confirmé: Rang ****
Messages : 835
| Sujet: Re: Stocker des variables dans un array Jeu 31 Déc 2009 - 16:35 | |
| Ah désolé atta je te fais ça |
| | | PHENIXprod Utilisateur confirmé: Rang ****
Messages : 835
| Sujet: Re: Stocker des variables dans un array Jeu 31 Déc 2009 - 16:46 | |
| Je t'ai fait le début par contre à la fin je n'ai pas trouvé comment faire et je me demande si c'est faisable... Je te donne le code quand même: - Code:
-
//create tagrille = ds_grid_create(3,50);//3=le nombre de données par objet(x,y,id); //50=le nombre maximal pour lequel cette méthode va marcher
//step for (s=0;s<=slavecount;s+=1) { ds_grid_set(tagrille,0,s,instance_id[s].x); ds_grid_set(tagrille,1,s,instance_id[s].y); ds_grid_set(tagrille,2,s,instance_id[s]); }
with(slave){instance_destroy();}
if spawnzone>0 { for (s=0;s<=slavecount;s+=1) { instance_create(ds_grid_get(tagrille,0,s),ds_grid_get(tagrille,1,s),slave) //je crée l'objet... //...et là je m'aperçoit que je ne sais pas attribuer une id particulière à un objet à le création, désolé } } |
| | | jo *Excellent utilisateur*
Messages : 4879 Localisation : CENSURE T_T Projet Actuel : FAC
| Sujet: Re: Stocker des variables dans un array Sam 2 Jan 2010 - 0:17 | |
| Tu n'as pas besoin de modifier l'ID o,O _________________ http://viciousslugs.sup.fr/ <- Des imbéciles en action. Venez visiter, on recherche des lecteurs, des auteurs, et ça paye mal. En fait ça paye pas, mais ya moyen de se marrer. |
| | | Termite Utilisateur confirmé: Rang ****
Messages : 1005 Localisation : Dans ta charpente ! Projet Actuel : RayEngine 5.0
| Sujet: Re: Stocker des variables dans un array Dim 3 Jan 2010 - 0:23 | |
| Merci beaucoups j'vais me débrouiller avec ça Yup ça marche niquel, le code : - Code:
-
if step>0 {step-=1}
if step=1 { for (s=0;s<=slavecount;s+=1) { ds_grid_set(spawngrid,0,s,slave[s].x); ds_grid_set(spawngrid,1,s,slave[s].y); ds_grid_set(spawngrid,2,s,slave[s].object_index); } }
if step=0 and destroyed=0 { for (s=0;s<=slavecount;s+=1) with(slave[s]){instance_destroy();} destroyed=1 }
spawnzone=collision_rectangle(kx-size,ky-(size*2),kx+size,ky,obj_rayplayerBeta,0,0)
if spawnzone>0 and activated=0 { activated=1 for (s=0;s<=slavecount;s+=1) { instance_create(ds_grid_get(spawngrid,0,s),ds_grid_get(spawngrid,1,s),ds_grid_get(spawngrid,2,s)) } }
step=1 dans le creation code (quand je met if alarm[0]=0 dans le step, ça marche pas, donc j'ai "émulé" l'alarm :/) Maintenant, un autre petit soucis J'dois tester si la variables dead des masters est à 1 donc dans le creation code : - Code:
-
master[0]=xxx master[1]=yyy master[n]=zzzz mastercount=n
Ensuite dans le step : - Code:
-
for (i=0;i<=mastercount;i+=1) { if master[i].dead=1 && activated=0{ for (s=0;s<=slavecount;s+=1) { instance_create(ds_grid_get(spawngrid,0,s),ds_grid_get(spawngrid,1,s),ds_grid_get(spawngrid,2,s)) } activated=1 }
J'ai bien compris qu'il exécute le code dès qu'un master a la variable dead à 1, comment je peux faire pour que ce soit tout les master qui aient la variable à 1 ? _________________ Because these are not the words of God, the same God that burnt the knowing.
|
| | | Contenu sponsorisé
| Sujet: Re: Stocker des variables dans un array | |
| |
| | | | Stocker des variables dans un array | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |