如何在循环中保存变量以便稍后再次使用它?

How do i save a variable in a loop to use it again later?

我想制作一个程序,将椭圆设置为彼此相邻,直到有人触及我的 canvas 的边界,然后向另一个方向前进。不幸的是,它只在一个方向上工作,当它到达右边时停止 border.Is 有没有办法在某个时候保存 sx 变量以便在第二个 if 语句中再次使用它?

void setup() {
    size(700, 500);
    frameRate(20); // frame rate = 20 Hz
}

int sx=50;
int sy=50;
int dx=15;

void draw() {

    if(sx<width){
        ellipse(sx,sy,20,20); 
        sx=sx+dx;

        if(sx>width){
            sx=sx-dx;
        }
    }
}

sx 在全局范围内,因此不需要 "store" 它,因为该值是持久的。
你想做的很简单。关键是 dx 而不是 sx。如果椭圆到达 window 的边界,则必须改变方向。这可以通过反转 dx.

来实现

sx 位于右边界 (sx >= width) 或左边界 (sx <= 0) 时,反转 dx (dx *= -1)。例如:

void setup() {
    size(700, 500);
    frameRate(20); // frame rate = 20 Hz
}

int sx=50;
int sy=50;
int dx=15;

void draw() {

    background(196);
    ellipse(sx,sy,20,20); 
    sx=sx+dx;

    if (sx >= width || sx <= 0 ){
        dx *= -1;
    }
}