Annonce

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


#1 2010-07-29 19:13:43 Minim : multiple AudioPlayer

videoactif
membre
Lieu: Morteau
Date d'inscription: 2010-01-27
Messages: 52

Minim : multiple AudioPlayer



Bonjour,
J'essaie de faire une anim reactive, où lorsque une boule touche une cible , un son est emis.
Ça marche niquel, sauf quand j'en utilise plusieurs, le son se lance sans s'arrété, alors que si j'en ai qu'un le son est lu niquel...

ci joint mon applet pour que vous voyez le bug en direct live
et ci dessus mon code :

import ddf.minim.*;
import ddf.minim.signals.*;
import ddf.minim.analysis.*;
import ddf.minim.effects.*;
Minim minim;
AudioPlayer player;
AudioPlayer player2;
Balle maBalle;
Cible maCible;
Cible maCible2;
boolean toucher=false;
void setup(){
  size(640,480);
  frameRate(30);
   colorMode(HSB,360,1,1,1);
  minim = new Minim(this);
  maBalle=new Balle(100.0,100.0,20,0.3,0,0,color(360,1,1));
  maCible=new Cible(100.0,400.0,50);
  maCible2=new Cible(300.0,400.0,100);
  player = minim.loadFile("er-kick.wav",2048);
player2 = minim.loadFile("2.wav",2048);


  }
void draw(){
  background(208);
 if(maCible.contact(maBalle)){
   player.cue(0);
   player.play();
 }
 if(maCible2.contact(maBalle)){
   player2.cue(0);
   player2.play();
 }
maCible.display();
maCible2.display();
maBalle.display();

    maBalle.mouvement();
    
}
void stop()
{
  // always close Minim audio classes when you are done with them
  player.close();
   player2.close();
  minim.stop();
  
  super.stop();
}

classe Balle

classe Cible

class Cible{
  float posX;
  float posY;
  float taille;
  Balle Maballe;
  float disX;
  float disY;
  boolean toucher;
  
  Cible(float xT,float yT,float tailleT){
    posX=xT;
    posY=yT;
    taille=tailleT;
    toucher=false;
  }
  void display(){
    noFill();
    stroke(0,0,0,1);
    ellipse(posX,posY,taille,taille);
  }
  boolean contact(Balle maBalle){
     disX = posX - maBalle.px;
      disY = posY - maBalle.py;
      if(sqrt(sq(disX) + sq(disY)) < (taille/2+maBalle.taille/2 )&&!maBalle.toucher) {
      maBalle.toucher=true;
      toucher=true;
      
      
     }else if(sqrt(sq(disX) + sq(disY)) > (taille/2+maBalle.taille/2 )){
       maBalle.toucher=false;
       toucher=false; 
     }else{
       toucher=false;
     }
       
return toucher;
}
}

Vous pouvez réutilisez le code si vous le souhaitez.
Merci de m'avoir lue

Dernière modification par videoactif (2010-07-29 19:14:29)


Programming is like sex: one mistake and you’re providing support for a lifetime.  Michael Sinz

Hors ligne

 

#2 2010-07-30 10:23:35 Re : Minim : multiple AudioPlayer

videoactif
membre
Lieu: Morteau
Date d'inscription: 2010-01-27
Messages: 52

Re: Minim : multiple AudioPlayer



J'ai testé avec l'objet AudioSample, qui semble plus approprié a ce que je fait , mais le résultat est le même, dès que j'inclus deux fonction contact entre mes cible et la balle, le son lié a la  cible se lance en continu...


Programming is like sex: one mistake and you’re providing support for a lifetime.  Michael Sinz

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024