2016-04-22 26 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

我明白多數民衆贊成在問題 –

+0

我不確定如何使用mousepressed與此。 :( –

+0

你可以使用actionPerformed從行動listner – GlacialMan