def __init__(self): super(TheGame, self).__init__(fps=30) self.player = Ship() self.add(self.player) self.aliens = [] colors = ['blue', 'cyan', 'green', 'yellow', 'red'] for i in xrange(50): a = Alien(32 + (i%10)*64, 48 + (i/10)*64, Game.color(colors[i/10])) self.aliens.append(a) self.add(self.aliens) self.shields = Game.Sprite.Group() for i in xrange(256): s = Shield(x=64+160*(i/64)+(i%8)*4, y=Game.height-100+(i%64)/8*4) self.shields.add(s) self.add(self.shields) self.quadtree = QuadTree(self.shields.sprites()) self.playerbullets = [Bullet(Vector(0,0)) for _ in xrange(8)] self.alienbullets = [Bullet(Vector(0,0)) for _ in xrange(24)] self.bullets = self.playerbullets + self.alienbullets self.add(self.bullets) self.fpsdisplay = FPS(font=Game.defaultFont) self.add(self.fpsdisplay) self.lives = text.Text(x=50, y=Game.world.height-20, autowidth=True) self.lives.text = "Lives: %d" % self.player.lives self.add(self.lives) self.killTimer = 2000
def __init__(self): super(TheGame, self).__init__(fps=30) self.player = Ship() self.add(self.player) self.aliens = [] colors = ['blue', 'cyan', 'green', 'yellow', 'red'] for i in xrange(50): a = Alien(32 + (i % 10) * 64, 48 + (i / 10) * 64, Game.color(colors[i / 10])) self.aliens.append(a) self.add(self.aliens) self.shields = Game.Sprite.Group() for i in xrange(256): s = Shield(x=64 + 160 * (i / 64) + (i % 8) * 4, y=Game.height - 100 + (i % 64) / 8 * 4) self.shields.add(s) self.add(self.shields) self.quadtree = QuadTree(self.shields.sprites()) self.playerbullets = [Bullet(Vector(0, 0)) for _ in xrange(8)] self.alienbullets = [Bullet(Vector(0, 0)) for _ in xrange(24)] self.bullets = self.playerbullets + self.alienbullets self.add(self.bullets) self.fpsdisplay = FPS(font=Game.defaultFont) self.add(self.fpsdisplay) self.lives = text.Text(x=50, y=Game.world.height - 20, autowidth=True) self.lives.text = "Lives: %d" % self.player.lives self.add(self.lives) self.killTimer = 2000
class TheGame(World): def __init__(self): super(TheGame, self).__init__(fps=30) self.player = Ship() self.add(self.player) self.aliens = [] colors = ['blue', 'cyan', 'green', 'yellow', 'red'] for i in xrange(50): a = Alien(32 + (i % 10) * 64, 48 + (i / 10) * 64, Game.color(colors[i / 10])) self.aliens.append(a) self.add(self.aliens) self.shields = Game.Sprite.Group() for i in xrange(256): s = Shield(x=64 + 160 * (i / 64) + (i % 8) * 4, y=Game.height - 100 + (i % 64) / 8 * 4) self.shields.add(s) self.add(self.shields) self.quadtree = QuadTree(self.shields.sprites()) self.playerbullets = [Bullet(Vector(0, 0)) for _ in xrange(8)] self.alienbullets = [Bullet(Vector(0, 0)) for _ in xrange(24)] self.bullets = self.playerbullets + self.alienbullets self.add(self.bullets) self.fpsdisplay = FPS(font=Game.defaultFont) self.add(self.fpsdisplay) self.lives = text.Text(x=50, y=Game.world.height - 20, autowidth=True) self.lives.text = "Lives: %d" % self.player.lives self.add(self.lives) self.killTimer = 2000 def update(self): collided = lambda f, s: f.collide(s, kill=True) shieldcollision = lambda f, s: f.collide(s) livingbullets = [b for b in self.bullets if b.alive] vsshields = [_ for _ in livingbullets + self.aliens \ if _.y > 360 and _.x > 60 and _.x < 580] for b in vsshields: hit = self.quadtree.hit(b.rect) if hit: for h in hit: if h.alive: h.collide(b) Game.Sprite.groupcollide(Game.Sprite.Group(self.playerbullets), \ self.aliens, False, False, collided) Game.Sprite.spritecollide(self.player, Game.Sprite.Group(self.alienbullets), \ False, collided) if not self.player.alive: self.killTimer -= Game.elapsed if self.killTimer <= 0: self.killTimer = 2000 self.player.reset() super(TheGame, self).update() def getAvailableBullet(self, who): if who == self.player: bulletslist = self.playerbullets else: bulletslist = self.alienbullets for e in bulletslist: if not e.alive: e.alive = True e.visible = True return e return None
class TheGame(World): def __init__(self): super(TheGame, self).__init__(fps=30) self.player = Ship() self.add(self.player) self.aliens = [] colors = ['blue', 'cyan', 'green', 'yellow', 'red'] for i in xrange(50): a = Alien(32 + (i%10)*64, 48 + (i/10)*64, Game.color(colors[i/10])) self.aliens.append(a) self.add(self.aliens) self.shields = Game.Sprite.Group() for i in xrange(256): s = Shield(x=64+160*(i/64)+(i%8)*4, y=Game.height-100+(i%64)/8*4) self.shields.add(s) self.add(self.shields) self.quadtree = QuadTree(self.shields.sprites()) self.playerbullets = [Bullet(Vector(0,0)) for _ in xrange(8)] self.alienbullets = [Bullet(Vector(0,0)) for _ in xrange(24)] self.bullets = self.playerbullets + self.alienbullets self.add(self.bullets) self.fpsdisplay = FPS(font=Game.defaultFont) self.add(self.fpsdisplay) self.lives = text.Text(x=50, y=Game.world.height-20, autowidth=True) self.lives.text = "Lives: %d" % self.player.lives self.add(self.lives) self.killTimer = 2000 def update(self): collided = lambda f,s: f.collide(s,kill=True) shieldcollision = lambda f,s: f.collide(s) livingbullets = [b for b in self.bullets if b.alive] vsshields = [_ for _ in livingbullets + self.aliens \ if _.y > 360 and _.x > 60 and _.x < 580] for b in vsshields: hit = self.quadtree.hit(b.rect) if hit: for h in hit: if h.alive: h.collide(b) Game.Sprite.groupcollide(Game.Sprite.Group(self.playerbullets), \ self.aliens, False, False, collided) Game.Sprite.spritecollide(self.player, Game.Sprite.Group(self.alienbullets), \ False, collided) if not self.player.alive: self.killTimer -= Game.elapsed if self.killTimer <= 0: self.killTimer = 2000 self.player.reset() super(TheGame, self).update() def getAvailableBullet(self, who): if who == self.player: bulletslist = self.playerbullets else: bulletslist = self.alienbullets for e in bulletslist: if not e.alive: e.alive = True e.visible = True return e return None