import java.util.List; import java.util.ArrayList; List sprites = new ArrayList(); void setup() { frameRate(20); size(300,300); sprites.add( new Sprite(loadImage("tree1-03.png"), 10, 12, 1, 1)); sprites.add( new Sprite(loadImage("tree2-03.png"), 110, 12, 1, 1)); sprites.add( new Sprite(loadImage("tree2-03.png"), 230, 12, 1, 1)); sprites.add( new Sprite(loadImage("tree1-05.png"), 0, 10, 1, 2)); sprites.add( new Sprite(loadImage("tree2-05.png"), 100, 10, 1, 2)); sprites.add( new Sprite(loadImage("tree2-05.png"), 240, 10, 0.8, 2)); sprites.add( new Sprite( loadImage( "bunny.png" ), 120, 0, 0.6, 0 )); sprites.add( new Sprite(loadImage("flower1.png"), 50, 0, 1, 3 )); sprites.add( new Sprite(loadImage("flower2.png"), 90, 0, 1, 3 )); sprites.add( new Sprite( loadImage("grass.png"), 250, 0, 1, 3)); } int t = 16; boolean up = true; void draw() { List newSpr = new ArrayList(); background(255); for( Iterator i = sprites.iterator(); i.hasNext(); ) { Sprite spr = (Sprite)i.next(); spr.draw(); if ( spr.layer > 0 ) { spr.moveBy( -1 * spr.layer, 0); } else { spr.moveBy( 0, up ? t : -2 * t ); if (up) { t = t / 2; up = (t > 1); } else { t = t * 2; up = ( t > 16 ); } } if ( spr.isVisible()) { newSpr.add( spr ); } else { spr = new Sprite( spr.img, 300, spr.y, spr.s, spr.layer ); newSpr.add( spr ); } } sprites = newSpr; }