AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -39%
Pack Home Cinéma Magnat Monitor : Ampli DENON ...
Voir le deal
1190 €

 

 Stocker des variables dans un array

Aller en bas 
3 participants
AuteurMessage
Termite
Utilisateur confirmé: Rang ****
Termite


Messages : 1005
Localisation : Dans ta charpente !
Projet Actuel : RayEngine 5.0

Stocker des variables dans un array Empty
MessageSujet: Stocker des variables dans un array   Stocker des variables dans un array EmptyJeu 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 Very Happy

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 Very Happy

Merci à tous et bonne année ! bneige

_________________
Because these are not the words of God, the same God that burnt the knowing.
Revenir en haut Aller en bas
PHENIXprod
Utilisateur confirmé: Rang ****
PHENIXprod


Messages : 835

Stocker des variables dans un array Empty
MessageSujet: Re: Stocker des variables dans un array   Stocker des variables dans un array EmptyJeu 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.
Revenir en haut Aller en bas
Termite
Utilisateur confirmé: Rang ****
Termite


Messages : 1005
Localisation : Dans ta charpente !
Projet Actuel : RayEngine 5.0

Stocker des variables dans un array Empty
MessageSujet: Re: Stocker des variables dans un array   Stocker des variables dans un array EmptyJeu 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 Very Happy

Merci l'ami :p

Si tu pouvais m'expliquer vite fait la théorie pour stocker tout ça, ça serait sympa Very Happy

_________________
Because these are not the words of God, the same God that burnt the knowing.
Revenir en haut Aller en bas
PHENIXprod
Utilisateur confirmé: Rang ****
PHENIXprod


Messages : 835

Stocker des variables dans un array Empty
MessageSujet: Re: Stocker des variables dans un array   Stocker des variables dans un array EmptyJeu 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.
Revenir en haut Aller en bas
Termite
Utilisateur confirmé: Rang ****
Termite


Messages : 1005
Localisation : Dans ta charpente !
Projet Actuel : RayEngine 5.0

Stocker des variables dans un array Empty
MessageSujet: Re: Stocker des variables dans un array   Stocker des variables dans un array EmptyJeu 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 Very Happy)

_________________
Because these are not the words of God, the same God that burnt the knowing.
Revenir en haut Aller en bas
PHENIXprod
Utilisateur confirmé: Rang ****
PHENIXprod


Messages : 835

Stocker des variables dans un array Empty
MessageSujet: Re: Stocker des variables dans un array   Stocker des variables dans un array EmptyJeu 31 Déc 2009 - 16:35

Ah désolé gnii

atta je te fais ça
Revenir en haut Aller en bas
PHENIXprod
Utilisateur confirmé: Rang ****
PHENIXprod


Messages : 835

Stocker des variables dans un array Empty
MessageSujet: Re: Stocker des variables dans un array   Stocker des variables dans un array EmptyJeu 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é
 }
}
Revenir en haut Aller en bas
jo
*Excellent utilisateur*
jo


Messages : 4879
Localisation : CENSURE T_T
Projet Actuel : FAC

Stocker des variables dans un array Empty
MessageSujet: Re: Stocker des variables dans un array   Stocker des variables dans un array EmptySam 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.
Revenir en haut Aller en bas
http://psyckho.skyrock.com/
Termite
Utilisateur confirmé: Rang ****
Termite


Messages : 1005
Localisation : Dans ta charpente !
Projet Actuel : RayEngine 5.0

Stocker des variables dans un array Empty
MessageSujet: Re: Stocker des variables dans un array   Stocker des variables dans un array EmptyDim 3 Jan 2010 - 0:23

Merci beaucoups j'vais me débrouiller avec ça ange
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 Very Happy
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.
Revenir en haut Aller en bas
Contenu sponsorisé





Stocker des variables dans un array Empty
MessageSujet: Re: Stocker des variables dans un array   Stocker des variables dans un array Empty

Revenir en haut Aller en bas
 
Stocker des variables dans un array
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Impossible de comparer des variables dans un draw ?
» [Résolu]Plusieurs variables dans une variable pour faire un inv?
» Minecraft-like - stocker les données - SQL ou autre
» array et tableau
» problème de array

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: