def generate_mobs(self): for i in range(9): m = Mob() self.sprites.add(m) self.mobs.add(m)
def on_update(self): # ------------- DEBUG SECTION ------------- if DEBUG: pass # ------------- DEBUG SECTION ------------- if not self.director.pause: self.sprites.update() # - Colissions # -- Ground if self.samus.vel.y > 0: hits = pg.sprite.spritecollide(self.samus, self.structures, False) if hits: self.samus.rect.bottom = hits[0].rect.top self.samus.vel.y = 0 # -- Shots if self.samus.ammo_type == 'normal': hits = pg.sprite.groupcollide(self.mobs, self.samus.shots, True, True) for hit in hits: m = Mob() self.sprites.add(m) self.mobs.add(m) elif self.samus.ammo_type == 'plasma': hits = pg.sprite.groupcollide(self.mobs, self.samus.shots, True, False) for hit in hits: m = Mob() self.sprites.add(m) self.mobs.add(m) # -- Mobs if not self.samus.invulnerable: hits = pg.sprite.spritecollide(self.samus, self.mobs, False, pg.sprite.collide_circle) for hit in hits: self.samus.tank_hp -= hit.damage if self.samus.tank_hp <= 0: self.samus.tank_hp = 100 self.samus.tanks -= 1 self.samus.invulnerable = True # - Moving camera self.samus.pos.x -= self.samus.vel.x for struc in self.structures: struc.pos.x -= self.samus.vel.x struc.pos.y -= self.samus.vel.y for mob in self.mobs: mob.pos.x -= self.samus.vel.x mob.pos.y -= self.samus.vel.y # Checking going main menu if self.main_menu: self.main_menu = False try: pg.mouse.set_visible(True) self.director.change_scene( self.director.scene_dict['scene_main_menu']) except Exception: print 'Imposible cambiar de escena' # Checking samus if out of lifes to end if self.samus.tanks < 0: self.main_menu = True
def __init__(self): self.entities: List[Entity] = [Wall(1, 2), Wall(5, 3), SuperPlayer(0, 0, '@', 100), Mob(-3, 2, 'snake', 20), Mob(-4, -2, 'cockroach', 10)]