加工中如何在Y坐标上制作重复的3D球?
How to make repeading 3D ball on Y coordinate in processing?
我正在制作有关处理的动画。然后,我对一个问题感到困惑。我为你准备了一个简单的代码。另外,我认为这个问题对初学者有帮助。
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,球应该 return 或开始它的第一个位置,然后再次到达 100。我尝试了很多 if 条件,但无法弄清楚。
如果你帮助我,我会很高兴。
谢谢
只要反转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;
}
我正在制作有关处理的动画。然后,我对一个问题感到困惑。我为你准备了一个简单的代码。另外,我认为这个问题对初学者有帮助。
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,球应该 return 或开始它的第一个位置,然后再次到达 100。我尝试了很多 if 条件,但无法弄清楚。 如果你帮助我,我会很高兴。 谢谢
只要反转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;
}