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
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()
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
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
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)
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()
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
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)
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()
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()
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
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)
from gameObject import GameObject gameController = GameObject() gameController.process_game()