2017-10-21 129 views
0

enter image description here Hej!第二個按鈕對象覆蓋第一個(處理)

我是新手,所以如果我的問題不夠明確,我很抱歉。

我正在製作一種烤麪包機,它必須在點擊開始按鈕時啓動,並在點擊停止按鈕時彈出麪包。我做了一個按鈕類,並在我的主程序中創建了一個新的按鈕對象。對於測試,我點擊開始按鈕後,將背景顏色從白色變爲紅色。

開始按鈕的作品,但現在我試圖做一個新的按鈕對象(停止按鈕),但是當我做一個停止按鈕對象它覆蓋開始按鈕對象)。首先我可能是因爲他們的開始按鈕是停止按鈕下的地方,但那不是它。一旦我處理,它也需要永久加載圖像。

我希望你能幫助我:)

int s = 0; 
    int m = 0; 


    Button stop_button; 
    Button on_button; 
    int clk = 1; 



    void setup() 
    { 
     on_button = new Button("Start", 230, 300, 60, 30); 
     stop_button = new Button("Start", 230, 300, 60, 30); 
     size(600, 600); 
     background(255, 255, 255); 


    } 


    void draw() { 
    stroke(240, 242, 179);  
    fill(240, 242, 179); 
    rect(190,150,210,130, 30); 

    stroke(126, 191, 167); 
    fill(126, 191, 167); 
    rect(170,200,250,170, 30); 



//BUTTON CODE 
    if (on_button.MouseIsOver()) { 
    } 
    on_button.Draw(); 
    } 


    void mousePressed() 
    { 
    if (on_button.MouseIsOver()) 
     print("Clicked: "); 
     println(clk++); 
     time(); 
    } 

    } 

    void time() 
    { 
    background(255, 0, 0); 

    } 

// Button類

class Button { 
    String label; // button label 
    float x;  // top left corner x position 
    float y;  // top left corner y position 
    float w;  // width of button 
    float h;  // height of button 

    // constructor 
    Button(String labelB, float xpos, float ypos, float widthB, float heightB) { 
    label = labelB; 
    x = xpos; 
    y = ypos; 
    w = widthB; 
    h = heightB; 
    } 

    void Draw() { 
    fill(218); 
    stroke(141); 
    rect(x, y, w, h, 10); 
    textAlign(CENTER, CENTER); 
    fill(0); 
    text(label, x + (w/2), y + (h/2)); 
    } 

    boolean MouseIsOver() { 
    if (mouseX > x && mouseX < (x + w) && mouseY > y && mouseY < (y + h)) { 
     return true; 
    } 
    return false; 
    } 
} 

回答

1

我不完全理解你的代碼,因爲你從來沒有反應,點擊,和你'永遠不會繪製第二個按鈕。

如果我是你,我會break your problem down into smaller steps並一次採取一個步驟。例如,你是否可以運行一個非常基本的例子,它顯示了一個單擊按鈕,只要點擊它就會向控制檯輸出消息?

從那裏,也許在另一個位置添加第二個按鈕當您單擊它時會打印不同的消息。在繼續前,請完美地工作。

當你得到那個工作,然後改變你的第一個草圖去做點改變背景顏色,當你點擊按鈕。最後,在單擊第一個按鈕後,可以將上述所有內容組合在一起以顯示第二個按鈕。

提示:您可能想要使用boolean變量來表示哪個按鈕當前正在顯示。但就像我說的,你最好的選擇就是簡單地開始,並以更小的步驟前進。

+0

我迄今爲止唯一做的就是繪製一個烤麪包機和一個開始按鈕。當你點擊這個按鈕時,它會顯示一個叫做無效時間的函數,背景變成紅色 - 我只做了這個來測試它是否工作。我真的希望它在調用void time函數時啓動一個定時器。但我想慢慢開始,只是看看我是否可以讓它做一些事情....現在我的問題是,我需要另一個按鈕旁邊的按鈕,說停止,因爲我需要能夠啓動和停止烤麪包機。 – Maria

+0

我附上了我迄今爲止製作的烤麪包機的照片。 – Maria

+0

好吧,我解決了它:D感謝您的反饋,雖然凱文:) – Maria

相關問題