mirror of
https://github.com/processing/processing4.git
synced 2026-06-16 04:26:26 +02:00
moving vector examples to Topics
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
/**
|
||||
* Bouncing Ball with Vectors
|
||||
* by Daniel Shiffman.
|
||||
*
|
||||
* Demonstration of using vectors to control motion of body
|
||||
* This example is not object-oriented (see AccelerationWithVectors and ForcesWithVectors for OOP)
|
||||
*/
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user