2016-04-22 3 views
0

クラスでのmousePressed使用して、私は私がこれまでのところ:)しかしは私が私の最初のプロジェクトであるこの響板を作った

だ幸せだ、私はクラスでmousePressedを使用しようとしていますし、動作しないようです適切には、一度クリックすると再生し、二回クリックすると再生できるようにしたいと思います。現時点では、サウンドボードのボタン上にマウスを移動すると、別のボタンに移動するまで自動的にサウンドが再生されます。

誰も問題を私に説明できますか?

class sound{ 


    float x; 
    float y; 

    public sound(float x, float y) { 
    this.x = x; 
    this.y = y; 
    } 
    void run() 
    { 
    draw(); 
    mousePressed(); 
    } 

    void draw() { 
    rect(x, y, 99, 99); 
    fill(100, 10, 10); 
    } 
    void mousePressed(){ 
    if (mouseX > 1 && mouseX < 99 
    && mouseY > 1 && mouseY < 99) { 
    s2.play(); 
    image(p7, 1, 1); 
    } else { 
    s2.pause(); 
    s2.rewind(); 
    } 

    if (mouseX > 100 && mouseX < 199 
    && mouseY > 1 && mouseY < 99) { 
    player.play(); 
    image(p9, 100, 1); 
    } else { 
    player.pause(); 
    player.rewind(); 
    } 
    if (mouseX > 200 && mouseX <300 
    && mouseY > 1 && mouseY < 99) { 
    s7.play(); 
    image(p6, 200, 1); 
    } else { 
    s7.pause(); 
    s7.rewind(); 
    } 

    if (mouseX > 1 && mouseX < 99 
    && mouseY > 100 && mouseY < 199) { 
    s8.play(); 
    image(p8, 1, 100); 
    } else { 
    s8.pause(); 
    s8.rewind(); 
    } 

    if (mouseX > 100 && mouseX < 199 
    && mouseY > 100 && mouseY < 199) { 
    s3.play(); 
    image(p2, 100, 100); 
    } else 
    { 
    s3.pause(); 
    s3.rewind(); 
    } 

    if (mouseX > 200 && mouseX < 300 
    && mouseY > 100 && mouseY < 199) { 
    s6.play(); 
    image(p5, 200, 100); 
    } else 
    { 
    s6.pause(); 
    s6.rewind(); 
    } 

    if (mouseX > 1 && mouseX < 99 
    && mouseY > 200 && mouseY < 299) { 
    s1.play(); 
    image(p1, 1, 200); 
    } else 
    { 
    s1.pause(); 
    s1.rewind(); 
    } 
    if (mouseX > 100 && mouseX < 199 
    && mouseY > 200 & mouseY < 299) { 
    s4.play(); 
    image(p3, 100, 200); 
    } else 
    { 
    s4.pause(); 
    s4.rewind(); 
    } 
    if (mouseX> 200 && mouseX < 299 
    && mouseY > 200 && mouseY < 299) { 
    s5.play(); 
    image(p4, 200, 200); 
    } else 
    { 
    s5.pause(); 
    s5.rewind(); 
    } 

    } 

} 


void setup() 
{ 
    size(300, 300); 
    minim = new Minim(this); 
    player = minim.loadFile("deadmau5.mp3"); 
    s1 = minim.loadFile("biggie.mp3"); 
    s2 = minim.loadFile("crush.mp3"); 
    s3 = minim.loadFile("ine.mp3"); 
    s4 = minim.loadFile("geazy.mp3"); 
    s5 = minim.loadFile("lil.mp3"); 
    s6 = minim.loadFile("manson.mp3"); 
    s7 = minim.loadFile("ochoa.mp3"); 
    s8 = minim.loadFile("tiesto.mp3"); 

    soundboard =loadImage("sb.png"); 
    p1 = loadImage("biggie.jpg"); 
    p2 = loadImage("dusky.jpg"); 
    p3 = loadImage("geazy.jpg"); 
    p4 = loadImage("lil.jpg"); 
    p5 = loadImage("manson.JPG"); 
    p6 = loadImage("ochoa.jpg"); 
    p7 = loadImage("pvd.jpg"); 
    p8 = loadImage("tiesto.jpg"); 
    p9 = loadImage("deadmouse.jpg"); 
    sound1 = new sound(1, 1); 
    sound2 = new sound(101, 1); 
    sound3 = new sound(201, 1); 
    sound4 = new sound(1, 101); 
    sound5 = new sound(101, 101); 
    sound6 = new sound(201, 101); 
    sound7 = new sound(1, 201); 
    sound8 = new sound(101, 201); 
    sound9 = new sound(201, 201); 
} 

void draw() 
{ 
    image(soundboard, 1, CENTER); 
    sound1.run(); 
    sound2.run(); 
    sound3.run(); 
    sound4.run(); 
    sound5.run(); 
    sound6.run(); 
    sound7.run(); 
    sound8.run(); 
    sound9.run(); 
    sound1.mousePressed(); 
    sound2.mousePressed(); 
    sound3.mousePressed(); 
    sound4.mousePressed(); 
    sound5.mousePressed(); 
    sound6.mousePressed(); 
    sound7.mousePressed(); 
    sound8.mousePressed(); 
    sound9.mousePressed(); 

} 

void mousePressed() { 
} 

答えて

0

あなたのスケッチのdraw()機能からあなたのSoundクラスのmousePressed()機能を呼び出しています。ユーザーが実際にマウスを押したかどうかをチェックしているわけではありません。

おそらく、これらの呼び出しをスケッチのmousePressed()関数に移動したいだけです。

+0

これは私が最初に試したものですが、それは仕事をしなかったので、クラス内でスムーズに行ったと思いました –

0
void mousePressed(){ 
    if (mouseX > 1 && mouseX < 99 && mouseY > 1 && mouseY < 99) { 
     s2.play(); 
     image(p7, 1, 1); 
    }else { 
     s2.pause(); 
     s2.rewind(); 
     } 

私はここに問題があると思いますが、マウスの位置はどこですか、それがその位置にないと音が止まると思います。

+0

私はthats問題を理解しています –

+0

私はこの方法でmousepressedを使用する方法がわかりません。 :( –

+0

アクションリスナーからactionPerformedを使用できます – GlacialMan