Initial Commit
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
// A class to describe a Polygon (with a PShape)
|
||||
|
||||
class Polygon {
|
||||
// The PShape object
|
||||
PShape s;
|
||||
// The location where we will draw the shape
|
||||
float x, y;
|
||||
// Variable for simple motion
|
||||
float speed;
|
||||
|
||||
Polygon(PShape s_) {
|
||||
x = random(width);
|
||||
y = random(-500, -100);
|
||||
s = s_;
|
||||
speed = random(2, 6);
|
||||
}
|
||||
|
||||
// Simple motion
|
||||
void move() {
|
||||
y+=speed;
|
||||
if (y > height+100) {
|
||||
y = -100;
|
||||
}
|
||||
}
|
||||
|
||||
// Draw the object
|
||||
void display() {
|
||||
pushMatrix();
|
||||
translate(x, y);
|
||||
shape(s);
|
||||
popMatrix();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
/**
|
||||
* PolygonPShapeOOP.
|
||||
*
|
||||
* Wrapping a PShape inside a custom class
|
||||
* and demonstrating how we can have a multiple objects each
|
||||
* using the same PShape.
|
||||
*/
|
||||
|
||||
|
||||
// A list of objects
|
||||
ArrayList<Polygon> polygons;
|
||||
|
||||
// Three possible shapes
|
||||
PShape[] shapes = new PShape[3];
|
||||
|
||||
void setup() {
|
||||
size(640, 360, P2D);
|
||||
|
||||
shapes[0] = createShape(ELLIPSE,0,0,100,100);
|
||||
shapes[0].setFill(color(255, 127));
|
||||
shapes[0].setStroke(false);
|
||||
shapes[1] = createShape(RECT,0,0,100,100);
|
||||
shapes[1].setFill(color(255, 127));
|
||||
shapes[1].setStroke(false);
|
||||
shapes[2] = createShape();
|
||||
shapes[2].beginShape();
|
||||
shapes[2].fill(0, 127);
|
||||
shapes[2].noStroke();
|
||||
shapes[2].vertex(0, -50);
|
||||
shapes[2].vertex(14, -20);
|
||||
shapes[2].vertex(47, -15);
|
||||
shapes[2].vertex(23, 7);
|
||||
shapes[2].vertex(29, 40);
|
||||
shapes[2].vertex(0, 25);
|
||||
shapes[2].vertex(-29, 40);
|
||||
shapes[2].vertex(-23, 7);
|
||||
shapes[2].vertex(-47, -15);
|
||||
shapes[2].vertex(-14, -20);
|
||||
shapes[2].endShape(CLOSE);
|
||||
|
||||
// Make an ArrayList
|
||||
polygons = new ArrayList<Polygon>();
|
||||
|
||||
for (int i = 0; i < 25; i++) {
|
||||
int selection = int(random(shapes.length)); // Pick a random index
|
||||
Polygon p = new Polygon(shapes[selection]); // Use corresponding PShape to create Polygon
|
||||
polygons.add(p);
|
||||
}
|
||||
}
|
||||
|
||||
void draw() {
|
||||
background(102);
|
||||
|
||||
// Display and move them all
|
||||
for (Polygon poly : polygons) {
|
||||
poly.display();
|
||||
poly.move();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user