HSwarm 004
import hype.*;
import hype.extended.behavior.HSwarm;
import hype.extended.behavior.HTimer;
import hype.extended.colorist.HColorPool;
HSwarm swarm;
HDrawablePool pool;
HTimer timer;
void setup() {
size(640,640);
H.init(this).background(#242424).autoClear(false);
swarm = new HSwarm()
.addGoal(H.mouse())
.speed(5)
.turnEase(0.05f)
.twitch(20)
;
pool = new HDrawablePool(40);
pool.autoAddToStage()
.add(new HRect().rounding(4))
.colorist(new HColorPool(#FFFFFF, #F7F7F7, #ECECEC, #333333, #0095a8, #00616f, #FF3300, #FF6600).fillOnly())
.onCreate(
new HCallback() {
public void run(Object obj) {
HDrawable d = (HDrawable) obj;
d
.strokeWeight(2)
.stroke(#000000, 100)
.size((int)random(10,20), (int)random(2,6) )
.loc(width/2, height/2)
.anchorAt(H.CENTER)
;
swarm.addTarget(d);
}
}
)
;
timer = new HTimer()
.numCycles( pool.numActive() )
.interval(250)
.callback(
new HCallback() {
public void run(Object obj) {
pool.request();
}
}
)
;
}
void draw() {
H.drawStage();
}
Â