forked from mhenstell/acw
/
WarpSpeedMrSulu.pde
67 lines (50 loc) · 1.04 KB
/
WarpSpeedMrSulu.pde
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
class WarpSpeedMrSulu extends Routine {
int NUM_STARS = 500;
WarpStar[] warpstars;
void setup(PApplet parent) {
super.setup(parent);
warpstars = new WarpStar[NUM_STARS];
for (int i = 0; i<NUM_STARS; i++) {
warpstars[i] = new WarpStar();
}
}
void draw() {
background(0);
stroke(255);
for (int i=0; i<NUM_STARS; i++) {
warpstars[i].draw();
}
if (frameCount - modeFrameStart > FRAMERATE*TYPICAL_MODE_TIME) {
newMode();
}
}
}
class WarpStar {
float x;
float y;
float len;
float v;
public WarpStar() {
this.reset();
}
public void reset() {
x = int(random(0, WIDTH));
y = int(random(0, -100));
v = random(0, 1);
len = v * 5;
}
public void draw() {
y = y + v;
int r = int(map(y, 0, HEIGHT, 0, 255));
int g = 0;
int b = 0;
stroke(r, g, b);
point(x, y);
for (int i=0; i<len; i++) {
float intensity = 255 >> i / 2;
stroke(intensity);
point(x, y - i);
}
if (y > HEIGHT) this.reset();
}
}