我正在制作动画。然后,我对一个问题感到困惑。我为您准备了一个简单的代码。另外,我认为这个问题对初学者有帮助。
PShape ball;
float ballSpeed = random(0.5, 1);
float ballSize = random(5, 10);
float x = 200, y = 300, z = 0;
void setup() {
size(400, 400, P3D);
noStroke(); // That's for "not see details on sphere"
ball = createShape(SPHERE, ballSize);
}
void draw() {
background(0);
translate(x, y, z); // rotate the ball
println(y); // checking the y coordinates
fill(255);
shape(ball);
y -= ballSpeed; // the ball can go to top
}
所以,我想做一个条件,如果球达到100,球应该返回或开始其第一个位置,然后再次到达100。我尝试了许多条件,但无法弄清楚。如果您能帮助我,我会很高兴。谢谢。
只需反转ballSpeed
,如果球的y
坐标小于或等于100或大于或等于300:
y -= ballSpeed;
if (y <= 100 || y >= 300) {
ballSpeed = -ballSpeed;
}
注意,球正在向上移动。当球达到100时,ballSpeed
反转,球改变方向并向下移动。如果球到达原始位置(300),则ballSpeed
再次反转,球再次改变方向。
[如果您希望球在300处重新开始,当它到达y
坐标为100时,就足以设置y = 300
:
y -= ballSpeed;
if (y <= 100) {
y = 300;
}