クラスの作例として雨滴が水面に落ちたときの波紋を描いてみた。
drops = list()
def setup():
size(500,500)
noFill()
def draw():
background(49, 123, 132)
# 水滴の生成
if frameCount % 20 == 0 or frameCount % 12 == 0:
drops.append(RainDrop())
# 波紋の描画と削除
for i, drop in enumerate(drops):
drop.draw()
if drop.isDrawing == False:
del drops[i]
class RainDrop():
def __init__(self):
self.x = random(0, width)
self.y = random(0, width)
self.r = 10
self.rEnd = random(50, 300)
self.step = 5
self.isDrawing = True
def draw(self):
# 描画
stroke(149,240,236, 255*(1-self.r/self.rEnd))
ellipse(self.x, self.y, self.r, self.r*0.4)
self.r += self.step
# 終了判定
if self.r > self.rEnd:
self.isDrawing = False