Esempio n. 1
0
 def generate_mobs(self):
     for i in range(9):
         m = Mob()
         self.sprites.add(m)
         self.mobs.add(m)
Esempio n. 2
0
    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
Esempio n. 3
0
 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)]