如何使用 millis() 每 X 秒显示一次图像



我有一系列随机选择的糖果图像。有糖果掉落,我想每 5 秒制作一个新的糖果掉落一次,我知道我必须使用 millis(( - 但是我将如何实现它到我的程序中?我尝试像这样使用 millis((:

int time = millis();
  if (time<5*1000)
  {
    image(goodCandy[rand], randX, goodY, randCandyW, randCandyH);
    goodY = goodY + (candySpeed * yDirCandy);
    time = millis();
  }

但它只出现 5 秒然后消失。我也试过:

 int time = millis();
  if (millis() - time >= 5000)
  {
    image(goodCandy[rand], randX, goodY, randCandyW, randCandyH);
    goodY = goodY + (candySpeed * yDirCandy);
    time = millis();
  }

但它没有用。

以下是简化的代码:

    PImage [] goodCandy = new PImage [3];
    int candySpeed = 20;
    int yDirCandy = 1;
    int candyY = 10;
    int candyX = 200;
    int candyW = 187;
    int candyH = 121;
    int randCandyW = 100;
    int randCandyH = 100;
    int goodY = -200;
    int rand=(int) (2*Math.random()) +1;
    int randX = (int) (1500*Math.random())+20;
    void setup() {
    for (int i=0; i<goodCandy.length; i++) {
      goodCandy[i] = loadImage("goodCandy" + i + ".png");
    }
    void draw() {
    if (current=="play") {
    loadStuff();
    }
    }
    void loadStuff() {
      image(candy, candyX, candyY, candyW, candyH);  //original candy
      candyY = candyY + (candySpeed * yDirCandy);
      int time = millis();
      if (millis() - time >= 5000)
      {
        image(goodCandy[rand], randX, goodY, randCandyW, randCandyH);
        goodY = goodY + (candySpeed * yDirCandy);
        time = millis();
      }
      //for (int i=0; i<time; i++) {
      //  image(goodCandy[rand], randX, goodY, randCandyW, randCandyH);
      //  goodY = goodY + (candySpeed * yDirCandy);
      //  time = millis();
      //}
    }

有什么想法可以让millis((工作,这样我就可以每5秒随机掉落一个糖果吗?谢谢

请试着养成把你的问题分解成更小的部分,一次只处理一个部分的习惯。例如,您可能应该从一个简单的草图开始,每 5 秒显示一个随机圆圈。

下面是一个小示例,显示了如何使用 millis() 函数每 5 秒绘制一次内容:

int lastCircleTime = 0;
void draw() {
  if (millis() > lastCircleTime + 5*1000) {
    ellipse(random(width), random(height), 20, 20); 
    lastCircleTime = millis();
  }
}

如果您仍然遇到问题,请发布一个 MCVE,准确显示您坚持哪一步。请注意,这不应该是您的整个草图。它应该是像这样的小例子。祝你好运。

最新更新