AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -40%
Tefal Ingenio Emotion – Batterie de cuisine 10 ...
Voir le deal
59.99 €

 

 [Résolu] Parents et variables des enfants

Aller en bas 
4 participants
AuteurMessage
Liang
Pas mal
Liang


Messages : 37

[Résolu] Parents et variables des enfants Empty
MessageSujet: [Résolu] Parents et variables des enfants   [Résolu] Parents et variables des enfants EmptyJeu 24 Mar 2011 - 19:35

Bonjour, je me remets au GML, après une tentative de passage au C++ (je continuerai quand je trouverai un GUI sympa)

Hors donc, j'ai découvert l'énorme potentiel de l'héritage en me penchant sur le C, et j'aimerais l'appliquer à mes projets GM !
J'ai donc fait ce code :

Code:
for (i=0;i<instance_number(o_parent);i+=1)
{
draw_text(32,150+i*60,o_parent.objdistance)
}

Ainsi, mon objet devrait afficher la variable "objdistance" de chaque instance fille de l'objet o_parent !
Mais ce n'est pas le cas... Pourquoi donc ? Comment arriver à atteindre la variable objdistance de toutes les instances filles de o_parent dans cette boucle ?

Merci d'avance,
Liang.
(Encore une fois, je sens que la solution va être on ne peut plus simple, et pourtant je n'arrive pas à mettre le doigt dessus...)


Dernière édition par Liang le Mer 30 Mar 2011 - 10:03, édité 1 fois
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

[Résolu] Parents et variables des enfants Empty
MessageSujet: Re: [Résolu] Parents et variables des enfants   [Résolu] Parents et variables des enfants EmptyJeu 24 Mar 2011 - 19:50

Moi quand je vois o_parent.objdistance je peut te dire que ça donneras toujours la même chose.
J'ai pas trop saisie comment tu t'y prend pour faire ce que tu veux mais a mon avis faire un tour dans la doc du coté des instances ne serais pas une mauvaise idée.

Entre autre voir ça :
instance_find(obj,n)
instance_id[0..n-1]
object_get_parent(ind)

_________________
[Résolu] Parents et variables des enfants Runningpotato1[Résolu] Parents et variables des enfants TvF6GED [Résolu] Parents et variables des enfants MdetltS
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

[Résolu] Parents et variables des enfants Empty
MessageSujet: Re: [Résolu] Parents et variables des enfants   [Résolu] Parents et variables des enfants EmptyJeu 24 Mar 2011 - 20:48

with()
{}

_________________
[Résolu] Parents et variables des enfants Control-commentTous les icones de gm utilisables sur le cbna ICI  [Résolu] Parents et variables des enfants Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
Liang
Pas mal
Liang


Messages : 37

[Résolu] Parents et variables des enfants Empty
MessageSujet: Re: [Résolu] Parents et variables des enfants   [Résolu] Parents et variables des enfants EmptySam 26 Mar 2011 - 14:18

En gros, il faudrait que je stocke l'id de chaque instance des objets enfants lors de leur création ?

En fait, mon but est d'arriver à ranger les instances filles dans un tableau, selon leur distance par rapport au héros (dans l'ordre croissant).
J'essaie donc de récupérer la variable "objdistance" pour chacune des instances... Je ne peux pas le faire en passant par l'objet parent j'imagine ?

Merci Onilink, le fait que j'aie été voir ces précisions sur la doc m'a pas mal aidé par ailleurs Smile
Liang
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

[Résolu] Parents et variables des enfants Empty
MessageSujet: Re: [Résolu] Parents et variables des enfants   [Résolu] Parents et variables des enfants EmptySam 26 Mar 2011 - 14:37

Moi je vois l'algo comme ça :

for(i=0; i<instance_number(child); i+=1)
{
child_id = instance_find(child, i)
ranger_dans_tableau(child_id, child_id.distance_heros)
}

_________________
[Résolu] Parents et variables des enfants Runningpotato1[Résolu] Parents et variables des enfants TvF6GED [Résolu] Parents et variables des enfants MdetltS
Revenir en haut Aller en bas
Liang
Pas mal
Liang


Messages : 37

[Résolu] Parents et variables des enfants Empty
MessageSujet: Re: [Résolu] Parents et variables des enfants   [Résolu] Parents et variables des enfants EmptySam 26 Mar 2011 - 15:27

Ca m'épate toujours de voir à quoi on peut arriver quand on connaît parfaitement ses commandes...

Toutefois, j'ai toujours quelques questions quant à ce code :

Code:
for(i=0; i<instance_number(child); i+=1)
Ne vaudrait-il pas mieux mettre "instance_number(parent), vu que j'ai plusieurs objets enfants différents ?

Code:
ranger_dans_tableau(child_id, child_id.distance_heros)
Ranger_dans_tableau serait un sript écrit auparavant ?
Sinon, si c'est le nom du tableau, ne faut-il pas mettre les arguments entre crochets ?
Et cette commande ne permet pas de les ranger par ordre croissant, si ?

Merci toutefois pour cette réponse concise et efficace ! Very Happy
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

[Résolu] Parents et variables des enfants Empty
MessageSujet: Re: [Résolu] Parents et variables des enfants   [Résolu] Parents et variables des enfants EmptySam 26 Mar 2011 - 16:09

Bah c'est une forme algorithmique que je te donne, l'idée du code que tu devrais créer.
Évidement ranger_dans_tableau est une fonction a écrire, mais utiliser une ds_map serais très bien aussi.

Dans le cas ou tu a plusieurs child tu peut toujours faire un truc du genre a mon avis :

nb_child = 3
child[0] = obj_1
child[1] = obj_5
child[2] = obj_blabla
[...]

for(j=0; j<nb_child; j+=1)
for(i=0; i<instance_number(child[j]); i+=1)
{
child_id = instance_find(child[j], i)
ranger_dans_tableau(child_id, child_id.distance_heros)
}

Bien sur y a d'autres méthodes j'imagine, mais celle la devrais être très rapide.

_________________
[Résolu] Parents et variables des enfants Runningpotato1[Résolu] Parents et variables des enfants TvF6GED [Résolu] Parents et variables des enfants MdetltS
Revenir en haut Aller en bas
Liang
Pas mal
Liang


Messages : 37

[Résolu] Parents et variables des enfants Empty
MessageSujet: Re: [Résolu] Parents et variables des enfants   [Résolu] Parents et variables des enfants EmptySam 26 Mar 2011 - 19:53

J'avais trouvé la même méthode entre temps, elle marche nickel !

Mais je ne m'en suis servi que pour afficher la distance entre les objets, et je n'arrive pas à trouver comment coder cette fameuse fonction "ranger_dans_tableau".

J'ai vu dans l'aide GM un méthode pour récupérer la variable la plus élevée :
Spoiler:

Mais comment faire pour récupérer toutes les valeurs et les réarranger dans l'ordre croissant...?
Vaut-il mieux utiliser un tableau, une liste ou une map...?

Merci d'avance,
Liang.
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

[Résolu] Parents et variables des enfants Empty
MessageSujet: Re: [Résolu] Parents et variables des enfants   [Résolu] Parents et variables des enfants EmptySam 26 Mar 2011 - 20:17

Utilise une map. Ça correspond exactement a ton problème.

Quand tu vas ajouter
ds_map_add(id, child_id, child_id.distance)
ça va ce mettre dans l'ordre tout seul.

Ensuite tu n'auras qu'a récupérer tes valeurs avec
ds_map_find_first(id) (tu récupère avec la premiere key = child_id) et
ds_map_find_next(id,key) (tu récupère les valeurs suivantes)

_________________
[Résolu] Parents et variables des enfants Runningpotato1[Résolu] Parents et variables des enfants TvF6GED [Résolu] Parents et variables des enfants MdetltS
Revenir en haut Aller en bas
Liang
Pas mal
Liang


Messages : 37

[Résolu] Parents et variables des enfants Empty
MessageSujet: Re: [Résolu] Parents et variables des enfants   [Résolu] Parents et variables des enfants EmptyDim 27 Mar 2011 - 4:46

Ah Nickel !
Je testerai ça dès que possible, et te tiendrai au courant !
Merci beaucoup Smile

Edit : Petite question sur les Maps !
Sont-elles considérées comme "globales" ?
Autrement dit, si je crée la map map_name dans un objet, pourrais-je accéder à/modifier cette même map depuis un autre objet en appelant simplement une fonction telle que ds_map_find_value(map_name,key) ?
Réponse perso : Non elles ne sont pas globales, il faut y accéder comme ceci : ds_map_find_value(objet_contenant_la_map.map_name,key)
Revenir en haut Aller en bas
Liang
Pas mal
Liang


Messages : 37

[Résolu] Parents et variables des enfants Empty
MessageSujet: Re: [Résolu] Parents et variables des enfants   [Résolu] Parents et variables des enfants EmptyLun 28 Mar 2011 - 0:44

Ca le fait, mais il ne faut pas mettre l'id en key mais en valeur, et la distance non en valeur mais en key. Dès lors, cela trie en fonction de la distance de l'objet, et non plus de son id !

Et j'ai un petit soucis ! Pour m'entraîner avec les maps, j'ai fait un petit projet rapide... Mais il y a quelque chose que je ne comprends pas...

J'ai deux objet, l'un créant une map, l'autre affichant les key et valeurs de cette map.
Pour le premier, le générateur de map, j'ai ces codes :

create :

Code:
map_id=ds_map_create()
ds_map_add(map_id,0,50)

Appuyer sur entrée :

Code:
    for (i=0;i<ctrl.maxsize;i+=1)
    {
    if !ds_map_exists(object0.map_id,i)
        ds_map_add(object0.map_id,i,ceil(random(50)))   
    else
        ds_map_replace(object0.map_id,i,ceil(random(50)))
    }

Un key 0 étant déclaré dès le début, le code devrait juste changer sa valeur !
Or, mes options d'affichage me montrent qu'en plus de changer la valeur de la key 0, ce code génère un autre key 0 avec une autre valeur... Ce qui fait que je me retrouve avec 2 key 0... Pourquoi cela ?

Merci d'avance, (et encore merci pour ton aide !! Smile )
Liang.
Revenir en haut Aller en bas
supmaster004
Utilisateur confirmé: Rang *****
supmaster004


Messages : 2188
Localisation : x=23.256842 y=43.456879
Projet Actuel : Faire des parodies de jeux en 1h

[Résolu] Parents et variables des enfants Empty
MessageSujet: Re: [Résolu] Parents et variables des enfants   [Résolu] Parents et variables des enfants EmptyLun 28 Mar 2011 - 13:56

lol j'avais jamais capté que les parents entrainent des enfants en GML ><

ça fait un peu tendancieux comme topic du coup :p

_________________
Spoiler:

L'IRC du cbna: IRC du cbna
projets terminés: prédation mouse vs keyboard ACII OC_ nintendo nightmare fuyez lavanville
Revenir en haut Aller en bas
Liang
Pas mal
Liang


Messages : 37

[Résolu] Parents et variables des enfants Empty
MessageSujet: Re: [Résolu] Parents et variables des enfants   [Résolu] Parents et variables des enfants EmptyMer 30 Mar 2011 - 10:03

Ok le sujet est résolu.
Le code final se rapproche de très près à celui proposé par Onilink, qui m'a vraiment aidé sur le coup ! Smile

Code:

Dans un objet controleur :

for (i=0;i<instance_number(objet_parent);i+=1)
{
child_id=instance_find(objet_parent,i) // Trouve l'id des instances
distance_child=child_id.variable_name // Trouve la variable des instances
}


Dans l'objet parent :

variable_name=valeur_voulue.

Pour récupérer ces valeurs, utiliser un tableau ou une Map.
J'ai posté un exemple, peut-être pas optimisé, mais qui, à priori, marche :
https://cbna.forumactif.com/t10839-exemple-classer-des-objets-selon-leur-distance-a-un-autre
Revenir en haut Aller en bas
Contenu sponsorisé





[Résolu] Parents et variables des enfants Empty
MessageSujet: Re: [Résolu] Parents et variables des enfants   [Résolu] Parents et variables des enfants Empty

Revenir en haut Aller en bas
 
[Résolu] Parents et variables des enfants
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Résolu] vérification de présence d'objets enfants
» [RESOLU] variables ...
» [Résolu] Les variables globales en d&d
» Gestion des Variables [Résolu]
» Probleme comparation de variables [RESOLU]

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: