mousePressed();

edited August 2015 in How To...

Minha duvida é sobre o mousePressed(), gostaria de saber se posso usá-lo mais de uma vez, por exemplo, em duas telas com menus. Se alguém puder me ajudar, agradeço.

Answers

  • Tem cada tela usar o mesmo mousePressed (), mas fazer coisas diferentes dependendo de qual tela está atualmente visível. Aqui está um exemplo :

    Have each screen use the same mousePressed(), but do different things depending on which screen is currently visable. Here is an example:

    int s = 0;
    color bg = color(0);
    
    void setup(){
      size(200,200);
      noStroke();
    }
    
    void draw(){
      if(s==0){
        background(bg);
        fill(255,0,0);
        ellipse(50,50,80,80);
        fill(255,0,255);
        ellipse(150,50,80,80);
        fill(255);
        triangle(20,120,180,150,20,180);
      } else {
        background(bg);
        fill(0,255,0);
        ellipse(50,150,80,80);
        fill(0,255,255);
        ellipse(150,150,80,80);
        fill(255);
        triangle(180,20,20,50,180,80);
      }
    }
    
    
    void mousePressed(){
      if(s==0){
        if(mouseY > height / 2){
          s=1;
        } else {
          bg = get(mouseX,mouseY);
        }
      } else {
        if(mouseY < height / 2){
          s=0;
        } else {
          bg = get(mouseX,mouseY);
        }
      }
    }
    

    (Initial question was about using mousePressed() on two different screens.)

  • edited July 2015 Answer ✓
    • Pra maioria dos casos, múltiplos mousePressed() são desnecessários.
      For most cases, multiple mousePressed() are unnecessary.
    • Por exemplo, podemos saber em qual das metades da tela um click occorreu c/ mouseX/mouseY.
      For example, we can know which 1 of those screen halves a click has ocurred w/ mouseX/mouseY.
    • Se mesmo assim vc insiste em múltiplos mousePressed(), vai ter que usar registerMethod() dentro de uma class.
      Even so you insist in multiple mousePressed(), you're gonna have to use registerMethod() inside a class.
  • GoToLoop, tem como me mandar algum link que fale sobre registerMethod() ?

  • There are some forum threads tagged as registerMethod():
    http://forum.Processing.org/two/discussions/tagged?Tag=registermethod()

  • color c = color(0);
    
    void setup(){
      size(200,200);
      noStroke();
    }
    
    void draw(){
      fill(255,0,0);
      rect(0,0,100,200);
      fill(0,0,255);
      rect(100,0,100,200);
      fill(c);
      ellipse(100,100,70,70);
    }
    
    
    void mousePressed(){
      if( mouseX < 100 ){
        beRed();
      } else {
        beBlue();
      }
    }
    
    void beRed(){
      c = color(128,0,0);
    }
    
    void beBlue(){
      c = color(0,0,128);
    }
    
Sign In or Register to comment.