def __init__(self, naubino): spammer_interval = Config.spammer_interval() self.spammer = Timer(spammer_interval, self.spam_naub_bunch) self.naubino = naubino naubino.space.gravity = (0, 40) self.center = FlybyCenter(self) self.naubino.mode = self
class FlybyMode(object): def __init__(self, naubino): spammer_interval = Config.spammer_interval() self.spammer = Timer(spammer_interval, self.spam_naub_bunch) self.naubino = naubino naubino.space.gravity = (0, 40) self.center = FlybyCenter(self) self.naubino.mode = self def play(self): self.spammer.start() self.spam_naub_pair() def stop(self): self.spammer.stop() def step(self, dt): self.spammer.step(dt) @property def size(self): return self.naubino.size def spam_naub_bunch(self): naubs_n = Config.naubs_per_bunch() naubs_max = Config.max_naubs() for i in xrange(naubs_n): if len(self.naubino.naubs) > naubs_max: return self.spam_naub_pair() def spam_naub_pair(self): pos = self.random_naub_pos() rot = random() * math.pi * 2 naubs = self.naubino.create_naub_chain(2, pos, rot) for naub in naubs: naub.color = self.naubino.random_naub_color() return naubs def random_naub_pos(self): a = Vec2d(self.size[0] * 0.5, 0) b = Vec2d(0, -(self.size[1] * 0.5 + 50)) return random_vec(a.x, a.y) + b def add_naub(self, naub): pass def remove_naub(self, naub): pass