我有一系列随机选择的糖果图像。有糖果掉落,我想每 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,准确显示您坚持哪一步。请注意,这不应该是您的整个草图。它应该是像这样的小例子。祝你好运。