Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2012-01-19 20:19:32 variable de class

Ars Robota
membre
Date d'inscription: 2008-03-23
Messages: 191

variable de class



Salut à toutes et tous,

Je voudrais créer une instance d'une class B avec les coordonnées de la dernière instance d'une class A (pour info, les coordonnées en question sont présentées sous forme d'un PVector(_x, _y) et sont créées dans une méthode). Mon problème est que je ne sais pas comment récupérer, dans la méthode draw, une variable de la dernière instance d'un objet dans la première instance d'un autre objet.

Ci-joint mon code (peut-être pas très propre, j'ai bidouillé un exemple d'Emoc - désolé!)


myspace.com/arsrobota

Hors ligne

 

#2 2012-01-19 21:11:40 Re : variable de class

Ars Robota
membre
Date d'inscription: 2008-03-23
Messages: 191

Re: variable de class



Oups, j'allais oublier: merci beaucoup par avance!
Alex


myspace.com/arsrobota

Hors ligne

 

#3 2012-01-20 10:04:21 Re : variable de class

Turboconnard
membre
Lieu: Lyon
Date d'inscription: 2012-01-13
Messages: 42
Site web

Re: variable de class



// pollens.add(new Pollen(width/2, height/2));//ici je veux récupérer les coordonnéess x et y

var lastPollen = pollens.get(pollens.size()-1);
pollens.add(new Pollen(lastPollen.posP.x,lastPollen.posP.y));

moi je ferrais ça pour créer un pollen à la place du dernier pollen créé

si c'est pour le tendrill tu peux faire comme ça :

var lasttendril = lasttendril.get(lasttendril.size()-1);
pollens.add(new Pollen(lasttendril.posP.x,lasttendril.posP.y));


[ Viande for life ! ]

Hors ligne

 

#4 2012-01-20 13:35:50 Re : variable de class

EricRG
membre
Lieu: Lorient
Date d'inscription: 2008-03-11
Messages: 171
Site web

Re: variable de class



Bonjour,

Je n'ai pas regardé le détail de ton code mais, d'une façon générale, pour pouvoir agir sur la dernière instance crée d'une classe A, tu peux créer une variable de type A au début du programme et mettre à jour cette variable dans le constructeur de la classe A.
Comme ça, elle pointe toujours vers le dernier objet "A" crée.

Comme ça tu peux l'utiliser pour t'adresser aux méthodes de cette dernière instance.

Exemple :  (Remarque : ici, les objets crées deviennent candidats au ramasse-miettes au fur et à mesure !)

A objetA;

int n=0;

void setup() {
  size(300,300);
  frameRate(3);
}

void draw() {
  n++;
  new A(n);
  objetA.display();
}

class A {
  int nombre;
 
  A(int nb) {
    nombre=nb;
    objetA=this;
  }
 
  void display() {
    println(nombre);
  }
}


J'étudie Godot Engine. Mon site internet est : https://ericrogergarcia.legtux.org/

Hors ligne

 

#5 2012-01-20 13:41:20 Re : variable de class

22_
membre
Lieu: paris
Date d'inscription: 2010-04-08
Messages: 189

Re: variable de class



Effectivement, comme Turboconnard, je te conseille de gérer ça avec une liste ordonnée de tes objets...

[Les attributs de classe sont des variables partagées par toutes les instances d'une même classe, il faut utiliser le mot clé static pour en déclarer un :

exemple classique d'utilisation d'un attribut de classe, le nombre d'instance d'une classe

class MaClasse{
   static int nombreInstanceClasse = 0;

   public MaClasse(){
       nomrbeInstanceClasse++;
   }
}

]

Hors ligne

 

#6 2012-01-20 13:46:21 Re : variable de class

22_
membre
Lieu: paris
Date d'inscription: 2010-04-08
Messages: 189

Re: variable de class



Oui... la solution d'Eric est trop limpide pour que mon esprit tordue ait pu y penser... smile

Hors ligne

 

#7 2012-01-20 15:41:58 Re : variable de class

Turboconnard
membre
Lieu: Lyon
Date d'inscription: 2012-01-13
Messages: 42
Site web

Re: variable de class



Je ne conseille pas du tout l'utilisation de variables static pour ce genre de code...

Effectivement la méthode de EricRG focntionne dans ce cas mais c'est pas très "Objet". Dans le cas de Ars Robota on a déjà des Arraylists avec les instances et c'est plus "Objet" de passer des coordonnées au constructeur plutôt que d'utiliser une variables static.
Ex : si on devait avoir deux fenetres distinctes dans l'appli avec les pollens... les positions ne seraient pas bonnes


[ Viande for life ! ]

Hors ligne

 

#8 2012-01-20 16:12:34 Re : variable de class

22_
membre
Lieu: paris
Date d'inscription: 2010-04-08
Messages: 189

Re: variable de class



"Je ne conseille pas du tout l'utilisation de variables static pour ce genre de code... "

On est d'accord... je mettais juste un exemple d'attributs de classe pour qu'Ars comprenne de quoi il en retournait quand il parlait de variables de classe.

Hors ligne

 

#9 2012-01-20 19:01:47 Re : variable de class

Ars Robota
membre
Date d'inscription: 2008-03-23
Messages: 191

Re: variable de class



Waouh! Merci beaucoup les codelaborantins pour vos réponses, je vais jeter un coup d'oeil atentif à tout ça.
aR


myspace.com/arsrobota

Hors ligne

 

#10 2012-01-21 14:47:39 Re : variable de class

Ars Robota
membre
Date d'inscription: 2008-03-23
Messages: 191

Re: variable de class



citation :

var lasttendril = lasttendril.get(lasttendril.size()-1);

@turboconnard: Ca m'a l'air intéressant mais je ne sais pas quel type de variable utiliser pour déclarer lasttendril... processing me renvoi une erreur si j'utilise var.

Une idée?

Merci beaucoup,
aR

Dernière modification par Ars Robota (2012-01-21 16:38:23)


myspace.com/arsrobota

Hors ligne

 

#11 2012-01-21 17:52:11 Re : variable de class

Ars Robota
membre
Date d'inscription: 2008-03-23
Messages: 191

Re: variable de class



OK, j'ai réussi à insérer la suggestion de turboconnard tout en me débarrassant des messages d'erreur... seulement la première instance de ma class Pollen continue de suivre la première instance de la class Tendril...


myspace.com/arsrobota

Hors ligne

 

#12 2012-01-21 19:55:18 Re : variable de class

Turboconnard
membre
Lieu: Lyon
Date d'inscription: 2012-01-13
Messages: 42
Site web

Re: variable de class



et faudrait qu'elle fasse quoi la premiere instance de pollen ?

(désolé pour le var, des habitudes d'autres langages)


[ Viande for life ! ]

Hors ligne

 

#13 2012-01-21 19:59:15 Re : variable de class

cgiles
membre
Lieu: Est de la France
Date d'inscription: 2005-05-25
Messages: 329

Re: variable de class



J'ai un peu retoucher ton code mais je sais pas si c'est ce que tu veux :
La fonction add ajoutes un dernier element a la liste, j'initie un element pollen, en prenant les valeurs x et y du premier element de tendril
J'ai un peux otimiser ton code, c'est aexpliquer dans les commentaires
En gros j'ai typer les classes, pour rendre le code plus simple, ajoutez une nouvelle initiation d'instance pour pollen, et changer ta façon de générer le mouvement aléatoire, en utilisant le noise, test tu verras wink

Hors ligne

 

#14 2012-01-21 20:01:10 Re : variable de class

Ars Robota
membre
Date d'inscription: 2008-03-23
Messages: 191

Re: variable de class



Et bien la première instance de Pollen devrait apparaître aux mêmes coordonnées que la dernière instance de Tendril, puis partir vers le haut de la fenêtre (style évaporation).

Merci de ton aide.
aR

Dernière modification par Ars Robota (2012-01-21 20:07:42)


myspace.com/arsrobota

Hors ligne

 

#15 2012-01-22 17:26:08 Re : variable de class

Ars Robota
membre
Date d'inscription: 2008-03-23
Messages: 191

Re: variable de class



@cgiles: Je n'avais pas vu ton post. C'est exactement ça, merci beaucoup de ton aide je suis en train d'étudier ça.

citation :

Je comprends mieux le fonctionnement des objets (grâce à tes commentaires). Il me semblait bien que ça devait donner quelque chose comme ça mais je ne savais pas comment créer une instance de Pollen correspondant à la première instance (et non pas la dernière comme je le pensais) de Tendril, ni où placer les lignes de code supplémentaires.

Dernière modification par Ars Robota (2012-01-22 17:51:39)


myspace.com/arsrobota

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024