Annonce

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


#1 2011-05-15 00:34:58 Questions à propos des classes

teofil
modérateur
Date d'inscription: 2008-10-12
Messages: 35
Site web

Questions à propos des classes



Bonjour à tous,

je suis actuellement sur un projet à base de reactivision et de gifs animés. Je m'explique :
une vidéo en boucle sert de background ; si jamais un fiducial est détecté, apparait sur l'écran le gif qui lui est attribué. Les gifs en question représentent des personnages. Il peut y en avoir 4 simultanément.
Pour cela, j'utilise les librairies video et TUIO, ainsi que la classe "Animation" fournie dans les exemples de Processing.
En voulant bien faire j'ai décidé de créer une classe Personnage comprenant position en x et y, le gif en question, et s'il doit être présent à l'écran ou pas.

Mon problème est avant tout dans la syntaxe (partie en gras) : quand je définis ma liste de personnages, j'ai :

________
perso[1] = new Personnage(12, 152, new Animation("georges_", 24), 0);
         .
         .
         .
________
Vous pouvez retrouver la classe Animation dans Exemples->Topics-Animation->AnimatedSprite.

Et du côté de la classe personnage, j'ai
________
class Personnage {
 
  Animation anim;
  Float posx, posy;
  int pres;
 

  Personnage(float x, float y, Animation ani, int p) {
    posx = x;
    posy = y:
    anim = ani;
    pres = p;
  }

 
  void draw() {
    if (pres = 1) {
      this.display(posx, posy);
    }
  }
 
}
________

Là pareil, deux grosses incertitudes sur la syntaxe. Peut-être un problème d'attribut ?
J'avoue être un poil perdu, si vous pouvez éclairer ma lanterne, c'est chouette big_smile

Hors ligne

 

#2 2011-05-15 13:08:19 Re : Questions à propos des classes

Jej
membre
Lieu: Le Puy-en-Velay
Date d'inscription: 2011-04-06
Messages: 21
Site web

Re: Questions à propos des classes



Quel est le message d'erreur ?...

Hors ligne

 

#3 2011-05-15 13:58:15 Re : Questions à propos des classes

teofil
modérateur
Date d'inscription: 2008-10-12
Messages: 35
Site web

Re: Questions à propos des classes



Je sais pas s'il a directement à voir avec mon problème :

expecting SEMI, found ':'
processing.app.SketchException: Syntax error, maybe a missing semicolon?
	at processing.mode.java.JavaBuild.preprocess(JavaBuild.java:307)
	at processing.mode.java.JavaBuild.preprocess(JavaBuild.java:197)
	at processing.mode.java.JavaBuild.build(JavaBuild.java:156)
	at processing.mode.java.JavaBuild.build(JavaBuild.java:135)
	at processing.mode.java.JavaMode.handleRun(JavaMode.java:176)
	at processing.mode.java.JavaEditor$20.run(JavaEditor.java:481)
	at java.lang.Thread.run(Thread.java:680)

Et il me cible le "{" fermant la classe Animation. Je précise que le programme est divisé en trois onglets : le programme principal, Animation (définition de la classe Animation), Personnage (définition de la classe personnage).

Bien sûr, j'ai vérifié, il ne manque aucun ";" dans l'onglet en question. J'ai aussi copié-collé ce bout de code dans un autre programme et il fonctionne, donc le problème ne vient pas de là sad


EDIT : Bon j'ai réussi à contourner le problème de la syntaxe, et j'ai trouvé mon ";" manquant. Mais j'ai toujours quelques erreurs. Je finie de tout modifier et je vous montre.

Dernière modification par teofil (2011-05-15 15:01:18)

Hors ligne

 

#4 2011-05-15 15:53:56 Re : Questions à propos des classes

teofil
modérateur
Date d'inscription: 2008-10-12
Messages: 35
Site web

Re: Questions à propos des classes



teofil a écrit:

Je sais pas s'il a directement à voir avec mon problème :

expecting SEMI, found ':'
processing.app.SketchException: Syntax error, maybe a missing semicolon?
	at processing.mode.java.JavaBuild.preprocess(JavaBuild.java:307)
	at processing.mode.java.JavaBuild.preprocess(JavaBuild.java:197)
	at processing.mode.java.JavaBuild.build(JavaBuild.java:156)
	at processing.mode.java.JavaBuild.build(JavaBuild.java:135)
	at processing.mode.java.JavaMode.handleRun(JavaMode.java:176)
	at processing.mode.java.JavaEditor$20.run(JavaEditor.java:481)
	at java.lang.Thread.run(Thread.java:680)

Et il me cible le "{" fermant la classe Animation. Je précise que le programme est divisé en trois onglets : le programme principal, Animation (définition de la classe Animation), Personnage (définition de la classe personnage).

Bien sûr, j'ai vérifié, il ne manque aucun ";" dans l'onglet en question. J'ai aussi copié-collé ce bout de code dans un autre programme et il fonctionne, donc le problème ne vient pas de là sad


EDIT : Bon j'ai réussi à contourner le problème de la syntaxe, et j'ai trouvé mon ";" manquant. Mais j'ai toujours quelques erreurs. Je finie de tout modifier et je vous montre.

EDIT 2 :
Bon maintenant voilà le nouveau code (je laisse le strict minimum, dite moi si vous voulez le code entier) :

Code (processing) :

Code (Processing) :

class Personnage {
  
  Animation anim;
  String nom;
  int nbfram;
  
  float posx, posy;
  boolean pres = false;
  
 
  Personnage(float x, float y, String n, int nb) {
    posx = x;
    posy = y;
    nom = n;
    nbfram = nb;
    anim = new Animation(nom, nbfram);
  }

  
  void affiche() {
    if (pres == true) {
      anim.display(posx, posy);
    }
  }
  
}

Ça me parait plus propre comme ça, en définissant l'animation au sein même du type Personnage (je sais pas si je m'exprime correctement...).

Maintenant l'erreur que j'obtiens est la suivante :

Exception in thread "Animation Thread" java.lang.ArrayIndexOutOfBoundsException: 4
	at Sally.setup(Sally.java:51)
	at processing.core.PApplet.handleDraw(PApplet.java:1608)
	at processing.core.PApplet.run(PApplet.java:1530)
	at java.lang.Thread.run(Thread.java:680)

Donc rebloqué... là je vois pas d'où ça peut venir.

N-EDIT : c'est bon. Le problème était que lorsque je définissais mes personnages un par un, j'allais de perso[1] à perso[4] (j'en ai 4 en tout) au lieu de perso[0] à perso[3]...

Dernière modification par teofil (2011-05-15 16:09:34)

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024