def update(self): if self.type == 0: self.image = characters.load_image('cactus.jpg', -1) else: self.image = characters.load_image('bird.jpg', -1) if self.game.score >= 100: self.pos -= 10 else: self.pos -= int(math.sqrt(self.game.score)) if self.type == 0: self.image = pygame.transform.scale( self.image, ((int(self.game.ht / 15), int(1.5 * self.game.ht / 10)))) else: self.image = pygame.transform.scale( self.image, ((int(self.game.ht / 10), int(1.5 * self.game.ht / 20)))) self.rect = self.image.get_rect() if self.type == 0: self.rect.y = int(self.game.ht * 8 / 10) elif self.type == 1: self.rect.y = int(self.game.ht * 8 / 10) else: self.rect.y = int(self.game.ht * 7 / 10) self.rect.x = int(self.pos / 1000 * self.game.wd) if self.pos <= 0: self.pos = 1000 self.type = random.randint(0, 2)
def __init__(self): pygame.init() pygame.mixer.init() self.screen = pygame.display.set_mode((WIDTH, HEIGHT), pygame.NOFRAME) pygame.display.set_caption('Thunderstorm') pygame.display.set_icon(characters.load_image('game-icon.png', -1)) self.clock = pygame.time.Clock() file = open('data/intro.txt', 'rt') data = file.read().split('\n') file.close() for i in range(len(data)): text = pygame.font.Font('data/joker.ttf', 30).render(data[i], 1, (255, 255, 255)) self.screen.blit(text, (5, i * 25 + 5)) pygame.display.flip() watching = True while watching: for event in pygame.event.get(): if event.type in [pygame.KEYUP, pygame.MOUSEBUTTONDOWN]: watching = False self.clock.tick(120) pygame.mixer.music.load('data/theme-2.wav') self.cursor_active = pygame.mouse.get_focused() self.mouse_pos = pygame.mouse.get_pos() self.cursor_active = True pygame.mouse.set_visible(False) self.running = True
def __init__(self, x, y, w, h): pygame.sprite.Sprite.__init__(self) self.image = characters.load_image('platform.png', -1) self.image = pygame.transform.scale(self.image, ((w, h))) self.rect = self.image.get_rect() self.rect.x = x self.rect.y = y
def choose_hat(self): hat_chosen = False hat = 0 hats = list(characters.CLASSES.keys()) while not hat_chosen: for event in pygame.event.get(): if event.type == pygame.MOUSEMOTION: self.cursor_active = pygame.mouse.get_focused() if self.cursor_active: self.mouse_pos = event.pos if event.type == pygame.KEYDOWN: if event.key == 276: hat -= 1 if event.key == 275: hat += 1 else: hat_chosen = True if event.type == pygame.MOUSEBUTTONDOWN: if event.pos[0] < WIDTH // 2: hat -= 1 else: hat += 1 hat = hat % len(hats) self.screen.fill((0, 128, 0)) text = pygame.font.Font('data/joker.ttf', 30).render('CHOOSE YOUR HAT!', 1, (255, 255, 255)) self.screen.blit(text, (200, 5)) text = pygame.font.Font('data/joker.ttf', 30).render(hats[hat].upper(), 1, (255, 255, 255)) self.screen.blit(text, (220, 100)) hat_image = characters.load_image(f'{hats[hat]}.png', -1) hat_image = pygame.transform.scale(hat_image, (200, 200)) self.screen.blit(hat_image, (WIDTH // 2 - 100, HEIGHT // 2 - 100)) if self.cursor_active: cursor = characters.load_image('cursor.png', -1) self.screen.blit(cursor, self.mouse_pos) pygame.display.flip() self.clock.tick(60) self.clac = hats[hat]
def __init__(self, game): pygame.sprite.Sprite.__init__(self) self.game = game self.type = 0 self.image = characters.load_image('cactus.jpg', -1) self.rect = self.image.get_rect() self.rect.x = self.game.wd self.pos = 1000 self.rect.y = int(self.game.ht * 8 / 10)
def __init__(self): pygame.init() pygame.mixer.init() self.wd, self.ht = WIDTH, HEIGHT self.screen = pygame.display.set_mode((self.wd, self.ht), pygame.RESIZABLE) pygame.display.set_caption('GOGOL DINOR') pygame.display.set_icon(characters.load_image('dino.jpg', -1)) self.clock = pygame.time.Clock() self.running = True hs = open('highscore.txt', 'rt') self.highscore = int(hs.read()) hs.close()
def draw(self): self.screen.fill((0, 0, 0)) self.screen.blit( pygame.transform.scale(characters.load_image("sky.png"), (WIDTH, HEIGHT)), (0, 0)) self.all_sprites.draw(self.screen) for enemy in self.enemies_mel.sprites(): posx = enemy.rect.topleft[0] posy = enemy.rect.midtop[1] - 20 pygame.draw.rect(self.screen, (0, 0, 0), (posx, posy, 100, 20)) pygame.draw.rect(self.screen, (0, 255, 0), (posx, posy, int(100 * enemy.hp / enemy.mhp), 20)) hat = characters.load_image(f'{self.player.clas}.png', -1) self.screen.blit( hat, (self.player.rect.topleft[0], self.player.rect.topleft[1] - 25)) if not self.paused: for i in self.particles: i.update() if not i.active: self.particles.remove(i) pygame.draw.rect(self.screen, (0, 0, 0), (WIDTH - self.player.maxHealth * 2, 0, self.player.maxHealth * 2, 30)) pygame.draw.rect( self.screen, (255, 0, 0), (WIDTH - self.player.health * 2, 0, self.player.health * 2, 30)) text = pygame.font.Font('data/joker.ttf', 80).render(f'{self.player.health}', 1, (255, 255, 255)) text = pygame.transform.scale(text, (self.player.maxHealth * 2, 30)) self.screen.blit(text, (WIDTH - self.player.maxHealth * 2, 0)) text = pygame.font.Font('data/joker.ttf', 30).render(f'{self.player.coins}$', 1, (255, 255, 0)) self.screen.blit(text, (5, 5)) file = open('highscore.txt', 'rt') heh = int(file.read()) file.close() text = pygame.font.Font('data/joker.ttf', 30).render(f'Best score: {heh}$', 1, (255, 255, 0)) self.screen.blit(text, (5, 40)) if self.paused: psm = pygame.Surface((WIDTH, HEIGHT)) psm.fill((0, 0, 0)) psm.set_colorkey((0, 255, 0)) psm.set_alpha(128) self.screen.blit(psm, (0, 0)) text = pygame.font.Font('data/joker.ttf', 100).render('GAME PAUSED', 1, (255, 255, 255)) text = pygame.transform.scale(text, (WIDTH // 2, 50)) self.screen.blit(text, (0, HEIGHT - 100)) if self.cursor_active: cursor = characters.load_image('cursor.png', -1) self.screen.blit(cursor, self.mouse_pos) pygame.display.flip()