私はこれを数時間は利用しないようにしています。それは非常に単純なコード、跳ねるボール(粒子)です。パーティクルの速度を(0、0)に初期化すると、パーティクルが上下にバウンスします。 (0、0.01)、または任意の10進浮動小数点へのパーティクルの初期化速度を変更すると、私は処理ベクトルの専門家ではないよボールがfloatで奇妙な問題を処理しました
Particle p;
void setup() {
size(500, 600);
background(0);
p = new Particle(width/2, height/2);
}
void draw() {
background(0, 10);
p.applyForce(new PVector(0.0, 1.0)); // gravity
p.update();
p.checkBoundaries();
p.display();
}
class Particle {
PVector pos, vel, acc;
int dia;
Particle(float x, float y) {
pos = new PVector(x, y);
vel = new PVector(0.0, 0.0);
acc = new PVector(0.0, 0.0);
dia = 30;
}
void applyForce(PVector force) {
acc.add(force);
}
void update() {
vel.add(acc);
pos.add(vel);
acc.mult(0);
}
void display() {
ellipse(pos.x, pos.y, dia, dia);
}
void checkBoundaries() {
if (pos.x > width) {
pos.x = width;
vel.x *= -1;
} else if (pos.x < 0) {
vel.x *= -1;
pos.x = 0;
}
if (pos.y > height) {
vel.y *= -1;
pos.y = height;
}
}
}