sx
находится в глобальной области видимости, поэтому нет необходимости его «хранить», поскольку значение является постоянным.
То, что вы хотите сделать, довольно просто. Ключ dx
, а не sx
. Если эллипс достигает границы окна, направление должно быть изменено. Это может быть достигнуто путем инвертирования dx
.
Invert dx
(dx *= -1
), когда sx
находится на правой границе (sx >= width
) или левой границе (sx <= 0
). например:
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;
}
}