X秒后处理图像消失(处理)

时间:2018-04-11 19:25:13

标签: processing

我目前正在开展一个项目,我想在3秒后弹出一个图片。一旦该图像弹出,用户必须点击图像以完成"完成"弹出的图像会在3秒后自动消失。

除了消失的部分之外,我已经完成了大部分工作。有谁知道如何在3秒后让图像消失时间?

PImage medic;
PImage medicD;

float time;
float startTime;

final int waitpopup = 3000;
final int DISPLAY_DURATION = 3000;

boolean showimage = true;
boolean showclock = true;
boolean showimagedone = true;
boolean hasClicked;

Clock clock;

void setup (){
size (1080, 1920);

 medic = loadImage("medic.png");
 medicD = loadImage("medicD.png");
 clock = new Clock(width /2, height /2);
 time = millis();
} 

void draw() {
 background (0);
 imageMode(CENTER);

 if (showclock) clock.display();

 if (showimage && millis() - time > waitpopup) {
   image(medic, width/2, height/2, 540, 540);
   } if (hasClicked == true) {
       showimage = false;
       image(medicD, width/2, height/2, 540, 540);
     } if (millis() > startTime + DISPLAY_DURATION) {
       showimagedone = false;
     }     
}

 void mousePressed() {
   hasClicked = true; 
   startTime = time;
 }

1 个答案:

答案 0 :(得分:1)

您可以使用frameCount函数或showimagedone变量来检查已经过了多长时间,然后在X秒之后或X帧之后执行某些操作。

您已经使用int clickedFrame; boolean on = false; int duration = 60; void draw(){ if(on){ background(255); if(frameCount > clickedFrame + duration){ on = false; } } else{ background(0); } } void mousePressed(){ clickedFrame = frameCount; on = true; } 变量完成了一些工作,但您需要使用该变量来有条件地绘制图像。

我建议this answer并让它发挥作用。这是一个例子:

class CreateStats < ActiveRecord::Migration[5.0]
  def change
    create_table :stats do |t|
      t.belongs_to :user, foreign_key: true
      t.string :key
      t.boolean :value

      t.timestamps
    end
    add_index :attributes, :key
  end
end

只要用户点击鼠标,此代码就会显示一秒钟的白色背景。你需要对你的图像做类似的事情。

相关帖子:

有关详细信息,请参阅Adding delay in Processing

如果您仍然无法使其正常运行,请在新问题中发布the Processing reference(不是您的完整项目!),我们将从那里开始。祝你好运。