我目前正在开展一个项目,我想在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;
}
答案 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(不是您的完整项目!),我们将从那里开始。祝你好运。