问题描述
我目前正在处理一个项目,我希望在 3 秒后弹出一个图像.弹出该图像后,用户必须单击该图像以弹出完成"图像,该图像将在 3 秒后自动消失.
I'm currently working on a project in which I want an image to pop up after 3 seconds. Once that image has popped up the user has to click on the image to make a "done" image pop up that will disappear automatically after 3 seconds.
除了消失的部分,我已经完成了大部分工作.有谁知道如何让图像在 3 秒后消失?
I've got most of it working except for the disappearing part. Does anyone know how I can time the image to disappear after 3 seconds?
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;
}
推荐答案
您可以使用 millis()
函数或 frameCount
变量来检查已经过去了多少时间by,然后在 X 秒或 X 帧后做一些事情.
You can use the millis()
function or the frameCount
variable to check how much time has gone by, then do something after X seconds or after X frames.
您已经使用 showimagedone
变量完成了一些工作,但您需要使用该变量来有条件地绘制图像.
You're already doing some of the work with the showimagedone
variable, but you need to use that variable to conditionally draw your image.
我建议从一个更简单的例子开始并让它发挥作用.举个例子:
I recommend starting with a simpler example and getting that working. Here's one example:
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 code show a white background for one second whenever the user clicks the mouse. You need to do something similar with your images.
相关帖子:
- 如何延迟处理项目?
- 如何只绘制每 x 帧?
- 每 500 帧从 ArrayList 中删除元素
- 正在处理中基于时间的事件
- 如何在 Processing 中每 10 秒向变量添加 +1?
- 如何在时间 = x 时创建某事
- 制作一个正在处理的回溯"程序
- 处理:如何每x"次创建一个对象
- 使用 frameRate 和帧计数器的定时器可靠吗?
- 在处理中添加延迟
另请参阅处理参考了解更多信息.
Please also consult the Processing reference for more information.
如果您仍然无法使其正常工作,请在一个新问题中发布 MCVE(不是您的完整项目!)我们将从那里出发.祝你好运.
If you still can't get it working, please post a MCVE (not your full project!) in a new question and we'll go from there. Good luck.
这篇关于使图像在 X 秒后消失(处理)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!