gpt4 book ai didi

java - [处理/Java]可见性/分层问题

转载 作者:行者123 更新时间:2023-12-02 08:24:58 26 4
gpt4 key购买 nike

我正在处理一个小草图,其中我使用时间函数制作一个“时钟”,并根据毫秒、秒和分钟在 Canvas 上绘制椭圆。我使用 for 循环来绘制所有省略号,每个 for 循环都位于其自己的方法内。我在绘图函数中调用每个方法。然而,由于某种原因,只有第一个被调用的方法被绘制,理想情况下我希望它们都被可见地渲染。

//setup program
void setup() {
size(800, 600);
frameRate(30);
background(#eeeeee);
smooth();
}

void draw(){
milliParticles();
secParticles();
minParticles();
}

//time based particles
void milliParticles(){
for(int i = int(millis()); i >= 0; i++) {
ellipse(random(800), random(600), 5, 5 );
fill(255);
}
}

void secParticles() {
for(int i = int(second()); i >= 0; i++) {
fill(0);
ellipse(random(800), random(600), 10, 10 );
}
}

void minParticles(){
for(int i = int(minute()); i >= 0; i++) {
fill(50);
ellipse(random(800), random(600), 20, 20 );
}
}

最佳答案

你的第一个方法是唯一被执行的方法,因为为了使 for 循环停止而必须为 false 的条件始终为 true(如果每次循环时向其添加 1,i 将始终 >= 0)。

我认为你想像这样修改你的 for 循环:

for(int i = int(second()); i >= 0; i--) {

这样,i 最初将为 0-59,然后逐渐减小直至为 -1,此时 i >= 0 将为 false。然后执行将退出 for 循环并传递到下一个方法。

我认为这是您的初衷,除非您希望每个方法同时且无限期地运行(在这种情况下您应该使用线程)。

关于java - [处理/Java]可见性/分层问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4702320/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com