【问题标题】:How can I make the image disappear in Processing如何使图像在处理中消失
【发布时间】:2018-06-11 23:39:53
【问题描述】:

我使用的是最新版本的 Processing 3.0.1。

当我按下某个键时,我成功显示了图像。

例如,当我按'a'键时,就会显示图像。

我还想让图像在我按下另一个键时消失。

但是,我找不到这样做的方法。

如果有人知道怎么做,请帮助我

这里是代码

PImage Onepiece1, Onepiece2;
void setup(){
  size(600,600);
  Onepiece1 = loadImage("Onepiece1.jpg");
  Onepiece2 = loadImage("Onepiece2.jpg");
}

void draw(){
}

void showimage1(){
  image(Onepiece1,10,10);
}


void keyPressed(){
  if(key == 'a'){
    showimage1();
  }
  else if(key == 'b'){
    // I want to make the image disappear when I press 'b'
  }


  println(key);
}

【问题讨论】:

    标签: image processing


    【解决方案1】:

    对于这个简单的场景,@Majlik 的建议是可以的,但通常绘制像 keyPressed() 这样的回调函数并不是一个好主意。而是使用标志来驱动 draw() 中的绘图,例如:

    未经测试

    PImage Onepiece1, Onepiece2;
    boolean showimage = false;
    
    void setup(){
      size(600,600);
      Onepiece1 = loadImage("Onepiece1.jpg");
      Onepiece2 = loadImage("Onepiece2.jpg");
       background (255);
    }
    
    void draw(){
      background (255);
      if(showImage){ 
        showImage1();
       }  
    }
    
    void showimage1(){
      image(Onepiece1,10,10);
    }
    
    
    void keyPressed(){
      if(key == 'a'){
        showImage = true;
      }
      else if(key == 'b'){
            showImage = false;
      }
    
    
      println(key);
    }
    

    【讨论】:

      【解决方案2】:

      对于像这样的简单场景,您只需要用任何东西重绘图像。最佳实践是使用background() 函数。所以你对按下b 的反应可能是这样的:

      if(key == 'b'){
          background(99);
      }
      

      另外,在 setup() 函数的开头指定相同的背景颜色也是一个好习惯:

      void setup(){
        size(600,600);
      
        ...
      
        background(99);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-04-25
        • 1970-01-01
        • 2021-04-29
        • 2012-08-30
        • 2022-11-01
        • 2012-03-20
        相关资源
        最近更新 更多