//package com.mycompany.app.mygroovymodule import processing.core.*; /* import java.applet.*; import java.awt.*; import java.awt.image.*; import java.awt.event.*; import java.io.*; import java.net.*; import java.text.*; import java.util.*; import java.util.zip.*; */ //--------------------------------------------------------- //--------------------------------------------------------- /** A group of dots appear and then shrink in size. This sketch uses the Groovy List and uses a second class SpriteEllipseInternal. */ class sketch_071119b_groovy extends PApplet { // global variables Integer nCount = -1 List listSprite = [] //--------------------------------------------------------- /* This is called once at start of application */ void setup() { size(400, 400) frameRate(10) smooth() } //--------------------------------------------------------- /* This is called every time slice. */ void draw() { background(120) /* nCount++ stroke(0) float r = random(50, 100) fill(nCount) if (nCount == 255) { nCount = 0 } ellipse(mouseX, mouseY, r, r) */ nCount++ nCount %= 90 if (nCount == 0) { for (i in 0..20) { def x = random(0, width) def y = random(0, height) def r = random((Integer) (height*0.05), (Integer) (height*0.225)) // 20, 90 Integer color = random(0, 255) SpriteEllipseInternal sprite = new SpriteEllipseInternal(x, y, r, color, this) listSprite << sprite } } for (e in listSprite) { e.update() } // remove dead sprites List listSprite2 = listSprite.findAll { it.isDead() } //println "listSprite2: ${listSprite2}" //println "listSprite: ${listSprite}" listSprite = listSprite.minus(listSprite2) for (e in listSprite) { e.render() } } //--------------------------------------------------------- /* */ static void main(args) { println "in main" PApplet.main([ "sketch_071119b_groovy" ] as String[]); //NOTWORKING>>PApplet.main([ "sketch_071119b_groovy" ]) println "DONE" } } //--------------------------------------------------------- //--------------------------------------------------------- class SpriteEllipseInternal { Float x = 0 Float y = 0 Float nRadius = 75 Integer color = 20 PApplet pApplet //--------------------------------------------------------- /* */ SpriteEllipseInternal(PApplet pApplet) { this.pApplet = pApplet } //--------------------------------------------------------- /* */ SpriteEllipseInternal(Float x, Float y, PApplet pApplet) { this.x = x this.y = y this.pApplet = pApplet } //--------------------------------------------------------- /* */ SpriteEllipseInternal(Float x, Float y, Float r, Integer colorIn, PApplet pApplet) { this.x = x this.y = y this.nRadius = r this.color = colorIn this.pApplet = pApplet } //--------------------------------------------------------- /* Do any update actions. */ void update() { if (nRadius > 0) { nRadius-- } } //--------------------------------------------------------- /* Render/draw to the canvas/frame */ void render() { pApplet.fill(color) pApplet.ellipse(x, y, nRadius, nRadius) } //--------------------------------------------------------- /* Returns status of if the sprite is dead or not. Dead meaning it is now useless for drawing purposes. @return true if sprite is dead or false if it is not dead. */ Boolean isDead() { if (nRadius <= 0) { return true } return false } }