You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Processing开发:实现图片弹出后3秒自动消失的问题求助

实现完成图片3秒后自动消失的方案

嘿,你已经搞定了项目的大部分功能,就差最后一步让「完成」图片自动消失啦!结合你给出的代码片段,我来帮你捋清楚怎么实现——核心思路是用Processing的millis()函数追踪时间,精准控制图片的显示时长。

关键逻辑梳理

我们需要一个布尔变量(比如showMedicD)控制「完成」图片的显示状态,同时记录图片开始显示的时间点。之后在每帧绘制时,检查当前时间与开始时间的差值,当差值超过3000毫秒时,就把布尔变量设为false,让图片停止显示。

修改后的代码示例(含注释)

假设你的代码已有基础变量,我补全关键部分并标注说明:

PImage medic; 
PImage medicD; 
float startTime; 
final int waitpopup = 3000; 
final int DISPLAY_DURATION = 3000; 
boolean showMedic = false; // 控制初始图片的显示状态
boolean showMedicD = false; // 控制完成图片的显示状态

void setup() {
  size(800, 600); // 替换成你的画布尺寸
  // 加载图片,记得替换成你实际的图片路径
  medic = loadImage("medic.png"); 
  medicD = loadImage("medicD.png"); 
}

void draw() {
  background(255); // 清屏,可根据项目需求调整背景色
  
  // 3秒后弹出初始图片(你已实现的逻辑,这里保留)
  if (millis() > waitpopup && !showMedicD) {
    showMedic = true;
  }
  
  // 显示初始图片(居中,可调整位置)
  if (showMedic) {
    image(medic, width/2 - medic.width/2, height/2 - medic.height/2);
  }
  
  // 显示完成图片+自动消失逻辑
  if (showMedicD) {
    image(medicD, width/2 - medicD.width/2, height/2 - medicD.height/2);
    
    // 检查是否超过3秒显示时长
    if (millis() - startTime > DISPLAY_DURATION) {
      showMedicD = false; // 隐藏完成图片
      // 若需要,可同时隐藏初始图片,根据需求调整
      // showMedic = false;
    }
  }
}

void mousePressed() {
  // 判断是否点击了初始图片的区域
  if (showMedic && 
      mouseX >= width/2 - medic.width/2 && mouseX <= width/2 + medic.width/2 &&
      mouseY >= height/2 - medic.height/2 && mouseY <= height/2 + medic.height/2) {
    showMedic = false; // 隐藏初始图片
    showMedicD = true; // 显示完成图片
    startTime = millis(); // 记录完成图片开始显示的时间点
  }
}

核心细节解释

  1. millis()函数:它返回程序启动到当前的毫秒数,是Processing中处理定时的首选工具——相比delay(),它不会阻塞整个程序的运行,更适合交互场景。
  2. 时间差判断:当millis() - startTime大于DISPLAY_DURATION(3000毫秒)时,说明完成图片已经显示了3秒,此时将showMedicD设为false,图片就会停止绘制,实现自动消失。
  3. 点击区域校验:在mousePressed()里,通过判断鼠标位置是否在初始图片范围内,确保只有点击图片才会触发后续逻辑,避免误触。

按照这个逻辑调整你的代码,就能顺利实现完成图片3秒后自动消失的功能啦!

内容的提问来源于stack exchange,提问作者Marco N.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:48:13