Example #1
0
    def enemy_spawn(self, dt):

        self.enemy_typeA_spawner -= dt
        self.enemy_typeB_spawner -= dt
        if self.player_is_alive:
            if self.enemy_typeA_spawner <= 0:
                self.enemy_list.append(
                    GameObject(1000,
                               800,
                               Sprite(self.enemy_imgA, batch=self.main_batch),
                               health=2))
                self.enemy_list[-1].vel_x = randint(100, 300) * choice(
                    self.directions)  # last spawned entity in entity list
                self.enemy_list[-1].vel_y = 30

                self.enemy_typeA_spawner += self.enemy_typeA_counter

            if self.enemy_typeB_spawner <= 0:
                self.enemy_list.append(
                    GameObject(600,
                               950,
                               Sprite(self.enemy_imgB, batch=self.main_batch),
                               health=5))
                self.enemy_list[-1].vel_x = randint(100, 300) * choice(
                    self.directions)  # last spawned entity in entity list
                self.enemy_list[-1].vel_y = 30

                self.enemy_typeB_spawner += self.enemy_typeB_counter

        if self.next_wave >= 20:
            self.enemy_typeA_counter -= 0.05
            self.enemy_typeB_counter -= 0.2
            self.next_wave = 0
Example #2
0
    def __init__(self):
        self.width = 800
        self.height = 800
        self.color = (0, 0, 0)
        self.game_window = pygame.display.set_mode((self.width, self.height))
        self.clock = pygame.time.Clock()

        self.background_image = GameObject(0, 0, self.width, self.height, 'assets/background.png')
        self.treasure = GameObject(375, 50, 50, 50, 'assets/treasure.png')

        self.level = 1.0

        self.reset_map()
Example #3
0
    def update(self, dt):
        if self.game:
            self.player_behavior(dt)
            self.enemy_behavior(dt)
            self.laser_shot(dt)

            for entity in self.enemy_list:
                if self.laser_collision(entity, self.player_laser):
                    self.enemy_hit(entity)

            if self.laser_collision(self.player,
                                    self.enemy_laser) and self.player_is_alive:
                self.player_hit()

            if self.player_flash:
                self.update_flash()

            self.update_explosion()
            self.enemy_spawn(dt)

            if self.enemy_explode:
                self.screen_shake()

            self.enemy_spawn(dt)

        for sheet in self.background:
            sheet.update(dt)
            if sheet.pos_y <= -1300:
                self.background.remove(sheet)
                self.background.append(
                    GameObject(0, 1100, Sprite(self.background_img)))
            sheet.vel_y = -100
Example #4
0
    def enemy_behavior(self, dt):
        for enemy in self.enemy_list:
            if enemy.pos_x >= 1000:
                enemy.pos_x = 1000
                enemy.vel_x *= -1

            if enemy.pos_x <= 100:
                enemy.pos_x = 100
                enemy.vel_x *= -1

            enemy.pos_y -= enemy.vel_y * dt
            enemy.pos_x += enemy.vel_x * dt
            enemy.sprite.x = enemy.pos_x
            enemy.sprite.y = enemy.pos_y
            if 450 >= enemy.pos_y >= 449.4 and self.player_is_alive:
                self.score -= 1
                self.num_score.text = str(self.score)

            if enemy.pos_y <= -100:
                self.enemy_list.remove(enemy)

            self.enemy_fire_rate -= dt

            if self.enemy_fire_rate <= 0:
                for enemy in self.enemy_list:
                    if randint(0, 10) >= 5:
                        self.enemy_laser.append(
                            GameObject(
                                enemy.pos_x + 50, enemy.pos_y,
                                Sprite(self.enemy_laser_img,
                                       batch=self.main_batch)))

                self.enemy_fire_rate += 10
Example #5
0
    def on_init(self):
        pygame.init()
        self._display_surf = pygame.display.set_mode(
            Constants.MAIN_WINDOW_SIZE, pygame.HWSURFACE | pygame.DOUBLEBUF)
        self.platformsSS = SpriteSheet(Constants.Paths.Spritesheet, 70, 70,
                                       Constants.Color.WHITE, 2)
        self.image2 = self.platformsSS.getImageByCoordinates(0, 0)
        self.image = self.platformsSS.getImageByNumber(0, 11)

        # TODO udělat objekt World asi ??

        x = GameObject()
        x.setPos(20, 1)
        x.setSprite(self.image, 70, 70)
        x.setDirection(0, 3)
        y = GameObject(x)
        y.setSprite(self.image, 70, 70)
        y.setY(70)
        x.addSubObject(y)

        z = GameObject()
        z.setX(Constants.MAIN_WINDOW_WIDTH - 90)
        z.setY(Constants.MAIN_WINDOW_HEIGHT - 150)
        z.setSprite(self.image, 70, 70)
        z.setDirection(0, -3)
        m = GameObject(z)
        m.setSprite(self.image, 70, 70)
        m.setY(70)
        z.addSubObject(m)

        ball = GameObject()
        ball.setX(Constants.MAIN_WINDOW_WIDTH / 2)
        ball.setY(Constants.MAIN_WINDOW_HEIGHT / 2)
        ball.type = Constants.ObjectType.Ball
        ball.setDirection(3, 0)
        image = self.platformsSS.getImageByNumber(6, 7)
        ball.setSprite(image, 70, 70)
        self.ball = ball

        self.topLevelObjects.append(x)
        self.topLevelObjects.append(z)
        self.topLevelObjects.append(ball)
        self._running = True

        pygame.time.wait(500)
Example #6
0
    def __init__(self):

        #The loop - This is what makes the game go so it doesn't instantly quit out
        #Variables
        self.width = 800
        self.height = 800
        self.white_color = (255, 255, 255)
        # Game Screen - Takes in a Tuple: width, height in pixels
        self.game_window = pygame.display.set_mode((self.width, self.height))

        self.clock = pygame.time.Clock(
        )  # The Clock, or how often things update

        #Game Objects
        self.background = GameObject(0, 0, self.width, self.height,
                                     'assets/background.png')
        self.treasure = GameObject(375, 50, 50, 50, 'assets/treasure.png')

        self.level = 1.0

        self.reset_map()
Example #7
0
    def load_player(self, imagaPlayer, imageLaser):
        player_spr = Sprite(preload(imagaPlayer), batch=self.main_batch)
        self.player = GameObject(500, 100, player_spr, health=5)

        self.player_laser_img = preload(imageLaser)
        self.player_laser = list()

        self.player_gun_sound = pyglet.media.load(
            './res/sounds/player_gun.wav', streaming=False)

        self.player_speed = 300
        self.player_fire_rate = 0
Example #8
0
 def init(self):
     self.handler.init()
     self.assets = self.handler.game.assets
     self.assets.initGameAssets()
     self.camera = GameCamera(self.handler)
     self.player = Player(self.handler)
     self.colors = ['green', 'yellow', 'white', 'blue']
     self.sprites = pygame.sprite.Group()
     self.objects = pygame.sprite.Group()
     
     for _ in range(20):
         pos = random.randint(100, 700), random.randint(100, 600)
         self.circle = GameObject(self.handler, pos, random.choice(self.colors), self.sprites, self.objects)
Example #9
0
    def __init__(self):         # constructor
        
        self.height = 700        # self. makes this a property rather than a variable
        self.width  = 800
        self.white_colour = (255, 255, 255)
        
        # part of pygame library
        self.clock = pygame.time.Clock()

        # set the game level, increment by 0.5
        self.level = 1.0

        # create the game window
        self.game_window = pygame.display.set_mode((self.width, self.height))

        # create the background image
        self.background = GameObject(0, 0, self.width, self.height, "assets/background.png")

        # create the treasure image
        self.treasure   = GameObject(375, 25, 50, 50, "assets/treasure.png")

        # set the game state based on the initial level
        self.reset_map()
Example #10
0
 def player_behavior(self, dt):
     self.player.update(dt)
     if self.right and self.player.pos_x < 1000 - self.player.sprite.width:
         self.player.pos_x += self.player_speed * dt
     if self.left and self.player.pos_x > 1:
         self.player.pos_x -= self.player_speed * dt
     if self.fire:
         self.player_fire_rate -= dt
         if self.player_fire_rate <= 0:
             self.player_laser.append(
                 GameObject(
                     self.player.pos_x + 7, self.player.pos_y + 30,
                     Sprite(self.player_laser_img, batch=self.main_batch)))
             self.player_fire_rate += 0.4
             self.player_gun_sound.play()
Example #11
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.set_location(400, 50)
        self.frame_rate = 1 / 60.0
        self.fps_display = FPSDisplay(self)
        self.main_batch = pyglet.graphics.Batch()

        self.right = False
        self.left = False
        self.fire = False
        self.player_speed = 300
        self.player_fire_rate = 0
        self.player_is_alive = True
        self.load_player('ship1.png', 'blueShot.png')
        self.load_enemy('104.png', '355.png', 'greenShot.png')

        self.load_labels()

        self.destroyed_enemies = 0
        self.next_wave = 0
        self.score = 0

        self.explode_time = 2
        self.enemy_explode = False
        self.shake_time = 0
        self.game = False
        self.flash_time = 1
        self.player_flash = False

        self.load_explosion('explosion.png')
        self.background = list()
        self.background_img = preload('space.jpg')
        self.directions = [1, -1]

        for i in range(2):
            self.background.append(
                GameObject(0, i * 1200, Sprite(self.background_img)))
            self.background[i].vel_y = -100
Example #12
0
    def init(self):
        self.handler.init()
        self.assets = self.handler.game.assets
        self.assets.initAssets()
        self.stairGroup = pygame.sprite.Group()
        self.stair1 = GameObject(self.handler, 'stairFL', 185, 242)
        self.stair2 = GameObject(self.handler, 'stairSL', 305, 265)
        self.stair3 = GameObject(self.handler, 'stairFR', 3570, 245)
        self.stair4 = GameObject(self.handler, 'stairSR', 3440, 265)
        self.stairGroup.add(self.stair1, self.stair2, self.stair3, self.stair4)

        self.left_pillar = GameObject(self.handler, 'left_pillar', 1120, 0)
        self.right_pillar = GameObject(self.handler, 'right_pillar', 2450, 0)
        # self.gameObject.init()
        self.world_1 = World(self.handler,
                             "battle_arena.png")  #, "battle_arena.png"
        self.world_1.init()
        self.current_world = self.world_1
        self.player = Player(self.handler)
Example #13
0
from gameObject import GameObject

gameController = GameObject()
gameController.process_game()