mouseevent - Mouse press event called twice -
the following code not working properly, want happen call placing_shapes_in_screen function mouse press , wait press place object on screen, happening first key press registering twice!! please help?
boolean cont = false; void setup(){ size(500,400); background(0,0,53); } void draw(){ if(mousepressed){ placing_shapes_in_screen(); println("done"); } } void placing_shapes_in_screen(){ fill(204,0,102); text("hello", 60, 90); nofill(); while(cont == false){ if(mousepressed){ ellipse(mousex,mousey,20,20); cont=true; } } cont=false; }
probably issue default draw called 60 time each second. makes relying in var mousepressed
control user interaction, not precise, perhaps button still pressed, 1/60th seconds later...
the way go use function mousepressed()
or mouseclicked()
callback functions called once when 1 of events ocour.
some thing this:
void mousepressed(){ place_shapes_in_screen(); } void place_shapes_in_screen(){ fill(204,0,102); text("hello", 60, 90); nofill(); ellipse(mousex,mousey,20,20); }
edit answer op's comment:
than need check if mouse inside button, , flag (or program states) handle placing ellipse.
in kind of pseudo code:
boolean oktoplace = false; void mousepressed(){ if(mouseisinsidebutton()){ oktoplace = true; }else if (oktoplace){ place_shapes_in_screen() } } void place_shapes_in_screen(){ fill(204,0,102); text("hello", 60, 90); nofill(); ellipse(mousex,mousey,20,20); oktoplace = false; // <<<<<<<<<!! }
edit2
here working 1 online @ sketchpad.cchere:
boolean oktoplace = false; pvector button; void setup(){ size(300,300); //using z size button = new pvector(20, height-40, 20); } void draw(){ color f = isinsidebutton()? color(255,0,0):color(0,0,255); fill(f); rect(button.x, button.y, button.z, button.z); } void mousepressed(){ if(isinsidebutton()){ oktoplace = true; }else if(oktoplace){ ellipse(mousex, mousey, 80,80); oktoplace = false; } } boolean isinsidebutton(){ return mousex > button.x && mousex < button.x+button.z && mousey > button.y && mousey < button.y + button.z; }
Comments
Post a Comment