mirror of
https://github.com/processing/processing4.git
synced 2026-02-02 13:21:07 +01:00
50 lines
1.1 KiB
Plaintext
50 lines
1.1 KiB
Plaintext
/**
|
|
* Bouncing Ball with Vectors
|
|
* by Daniel Shiffman.
|
|
*
|
|
* Demonstration of using vectors to control motion of body
|
|
* This example is not object-oriented
|
|
* See AccelerationWithVectors for an example of how to simulate motion using vectors in an object
|
|
*/
|
|
|
|
PVector location; // Location of shape
|
|
PVector velocity; // Velocity of shape
|
|
PVector gravity; // Gravity acts at the shape's acceleration
|
|
|
|
void setup() {
|
|
size(640,360);
|
|
smooth();
|
|
location = new PVector(100,100);
|
|
velocity = new PVector(1.5,2.1);
|
|
gravity = new PVector(0,0.2);
|
|
|
|
}
|
|
|
|
void draw() {
|
|
background(0);
|
|
|
|
// Add velocity to the location.
|
|
location.add(velocity);
|
|
// Add gravity to velocity
|
|
velocity.add(gravity);
|
|
|
|
// Bounce off edges
|
|
if ((location.x > width) || (location.x < 0)) {
|
|
velocity.x = velocity.x * -1;
|
|
}
|
|
if (location.y > height) {
|
|
// We're reducing velocity ever so slightly
|
|
// when it hits the bottom of the window
|
|
velocity.y = velocity.y * -0.95;
|
|
location.y = height;
|
|
}
|
|
|
|
// Display circle at location vector
|
|
stroke(255);
|
|
strokeWeight(2);
|
|
fill(127);
|
|
ellipse(location.x,location.y,48,48);
|
|
}
|
|
|
|
|