第二个按钮对象覆盖第一个(处理)

第二个按钮对象覆盖第一个(处理)

问题描述:

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; 
    } 
} 

我不完全理解你的代码,因为你从来没有反应,点击,和你'永远不会绘制第二个按钮。

如果我是你,我会break your problem down into smaller steps并一次采取一个步骤。例如,你是否可以运行一个非常基本的例子,它显示了一个单击按钮,只要点击它就会向控制台输出消息?

从那里,也许在另一个位置添加第二个按钮当您单击它时会打印不同的消息。在继续前,请完美地工作。

当你得到那个工作,然后改变你的第一个草图去做点改变背景颜色,当你点击按钮。最后,在单击第一个按钮后,可以将上述所有内容组合在一起以显示第二个按钮。

提示:您可能想要使用boolean变量来表示哪个按钮当前正在显示。但就像我说的,你最好的选择就是简单地开始,并以更小的步骤前进。

+0

我迄今为止唯一做的就是绘制一个烤面包机和一个开始按钮。当你点击这个按钮时,它会显示一个叫做无效时间的函数,背景变成红色 - 我只做了这个来测试它是否工作。我真的希望它在调用void time函数时启动一个定时器。但我想慢慢开始,只是看看我是否可以让它做一些事情....现在我的问题是,我需要另一个按钮旁边的按钮,说停止,因为我需要能够启动和停止烤面包机。 – Maria

+0

我附上了我迄今为止制作的烤面包机的照片。 – Maria

+0

好吧,我解决了它:D感谢您的反馈,虽然凯文:) – Maria