Super merci Marty, çà marche pour les valeur de x.
Pour le y par contre çà ne marche pas je pense que " get(1) " n'est pas correct. Quand je print l'osc message il me donne cela:
### received an osc message with addrpattern /varY and typetag f
-OscMessage----------
received from /127.0.0.1:60520
addrpattern /varY
typetag f
[0] 171.0
---------------------
### received an osc message with addrpattern /varX and typetag f
-OscMessage----------
received from /127.0.0.1:60520
addrpattern /varX
typetag f
[0] 178.0
est ce que les deux message sont sur le canal [0] ? pourquoi je ne pas utiliser l'addrpatern ?
Merci
Hors ligne
Ah ok, pardon je pensais que tu envoyais un message avec plusieurs valeurs pour la meme clé. Genre que tu envoyais "/coordonnées varX varY varZ". Dans ce cas mon code précédent marcherait. Si tu as une clé par coordonnées il faut tester la clé voulue ce qui donnerait quelque chose comme ça :
if (theOscMessage.checkAddrPattern("/varX") == true) { int x = (int)theOscMessage.get(0).floatValue(); } if (theOscMessage.checkAddrPattern("/varY") == true) { int y = (int)theOscMessage.get(0).floatValue(); } if (theOscMessage.checkAddrPattern("/varZ") == true) { int z = (int)theOscMessage.get(0).floatValue(); }
Hors ligne
Super çà marche j'ai mes deux valeurs merci !
Hors ligne
Une dernière question. Si je souhaite réutilisé les valeurs de x et y dans mon void draw comment je déclare çà au niveau global ?
Hors ligne
Dans ce cas il faut déclarer tes variables en amont, tout en haut de ta page avant le setup(). De la même manière que tu déclares ton objet oscP5 :
OscP5 oscP5; int x, y;
et dans ta fonction tu modifies les valeurs de x et y :
if (theOscMessage.checkAddrPattern("/varX") == true) { x = (int)theOscMessage.get(0).floatValue(); } if (theOscMessage.checkAddrPattern("/varY") == true) { y = (int)theOscMessage.get(0).floatValue(); }
Hors ligne
le cercle reste au coordoné (0,0) et si je place
if (theOscMessage.checkAddrPattern("/varX") == true) { x = (int)theOscMessage.get(0).floatValue(); } if (theOscMessage.checkAddrPattern("/varY") == true) { y = (int)theOscMessage.get(0).floatValue(); }
autre par que dans le void oscEvent il m'affiche un message d'erreur
Hors ligne
je ne comprend pas bien ton pb, peux tu etre plus précis ? quel probleme ? quel code d'erreur ?
Hors ligne
Autant pour moi j'avais laisser le int devant x et y dans le void oscEvent. Tout roule merci encore !
Hors ligne