def __init__(self, enemyGroup, lifeGroup, lives=3): player_img = resources.getSprite('player') self.player_img = pygame.transform.smoothscale(player_img, (player_img.get_width() // 2, player_img.get_height() // 2)) self.player_hurt_img = pygame.transform.smoothscale(resources.getSprite('player-hurt'), (player_img.get_width() // 2, player_img.get_height() // 2)) self.player_newlife_img = pygame.transform.smoothscale(resources.getSprite('player-newlife'), (player_img.get_width() // 2, player_img.get_height() // 2)) Block.__init__(self, self.player_img) self.enemies = enemyGroup self.newLife = lifeGroup self.lives = lives self.imgTick = 0 self.hitTick = 0
def __init__(self): life_img = resources.getSprite('newlife') self.life_img = pygame.transform.smoothscale(life_img, (life_img.get_width() // 4, life_img.get_height() // 4)) Block.__init__(self, self.life_img.copy()) self.tick = 300 self.mode = 'growing' self.size = 10
def __init__(self): if not self.obstacle_img: obstacle_img = resources.getSprite('obstacle') self.obstacle_img = pygame.transform.smoothscale(obstacle_img, (obstacle_img.get_width() // 2, obstacle_img.get_height() // 2)) Block.__init__(self, self.obstacle_img) self.mode = 'appear' self.tick = 7200 self.size = 10
def instructionLoop(): global GAME_MODE print("Instructions Loop") bg = resources.getBackground('instructions') darkness = 100 mode = 'fade in' goto = GAME_MENU tick = 0 menuButton = sprites.Button(resources.getSprite('button-menu')) menuButton.rect.center = (GAME_WIDTH // 4, GAME_HEIGHT * 3 // 4) while GAME_MODE == GAME_INFO: for event in pygame.event.get(): if event.type == pygame.QUIT: GAME_MODE = GAME_QUIT if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: goto = GAME_MENU mode = 'fade out' if mode == 'fade in': darkness -= fadeSpeed if darkness <= 0: mode = 'still' elif mode == 'fade out': darkness += fadeSpeed if darkness >= 100: tick = 60 mode = 'wait' if tick > 0: tick -= 1 if tick == 0: GAME_MODE = goto if mode == 'still': if menuButton.clicked(): goto = GAME_MENU mode = 'fade out' gameDisplay.blit(bg, (0, 0)) gameDisplay.blit(menuButton.image, menuButton.rect) dimDisplay(darkness) pygame.display.update() clock.tick(60)
def __init__(self, playerGroup): if not self.init: enemy_img = resources.getSprite('enemy') EnemyBlock.enemy_img = pygame.transform.smoothscale(enemy_img, (enemy_img.get_width() // 2, enemy_img.get_height() // 2)) self.init = True Block.__init__(self, self.enemy_img) self.playerGroup = playerGroup self.speed = 1.25 self.drag = 0.25 self.size = 10 self.harmTick = 100 self.harmful = False
def menuLoop(): print("Menu Loop") global GAME_MODE mode = 'fade in' goto = GAME_LOGO tick = 0 darkness = 100 bg = resources.getBackground('menu') buttons = pygame.sprite.RenderPlain() playButton = sprites.Button(resources.getSprite('button-play')) ruleButton = sprites.Button(resources.getSprite('button-rules')) buttons.add(playButton, ruleButton) playButton.rect.right, ruleButton.rect.right = 0, 0 playButton.rect.y = GAME_HEIGHT / 2 ruleButton.rect.y = GAME_HEIGHT / 2 + 100 while GAME_MODE == GAME_MENU: for event in pygame.event.get(): if event.type == pygame.QUIT: GAME_MODE = GAME_QUIT if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: GAME_MODE = GAME_QUIT if event.key == pygame.K_RETURN: goto = GAME_PLAY mode = 'fade out' if tick > 0: tick -= 1 if mode == 'fade in': darkness -= fadeSpeed elif mode == 'fade out': darkness += fadeSpeed if playButton.rect.right > 0: playButton.rect.right -= 3 ruleButton.rect.right -= 3 elif tick == 0 and mode == 'wait': GAME_MODE = goto elif mode == 'buttons': playButton.rect.right += 3 ruleButton.rect.right += 3 if playButton.rect.right >= 100: mode = 'still' if darkness <= 0 and mode == 'fade in': mode = 'buttons' elif darkness >= 100 and mode == 'fade out': mode = 'wait' tick = 60 if mode == 'still': if playButton.hovering(): playButton.rect.right = 110 else: playButton.rect.right = 100 if ruleButton.hovering(): ruleButton.rect.right = 110 else: ruleButton.rect.right = 100 if playButton.clicked(): goto = GAME_PLAY mode = 'fade out' if ruleButton.clicked(): goto = GAME_INFO mode = 'fade out' gameDisplay.blit(bg, (0, 0)) buttons.draw(gameDisplay) dimDisplay(darkness) clock.tick(60) pygame.display.update()
def gameOverLoop(): global GAME_MODE print("Game Over Loop") print("Game Over!\nScore:", str(score)) darkness = 100 tick = 0 mode = 'fade in' bg = resources.getBackground('red').copy() drawText('Game Over!', GAME_WIDTH // 2, GAME_HEIGHT // 4, color=(0, 200, 0), text_align='center', surf=bg) drawText('Score:', GAME_WIDTH // 2, GAME_HEIGHT // 4 + 100, color=(0, 200, 0), text_align='center', surf=bg) drawText(str(score), GAME_WIDTH // 2, GAME_HEIGHT // 4 + 130, color=(0, 200, 0), text_align='center', surf=bg) playButton = sprites.Button(resources.getSprite('button-replay')) menuButton = sprites.Button(resources.getSprite('button-menu')) playButton.rect.topleft = (GAME_WIDTH, GAME_HEIGHT // 4) menuButton.rect.topleft = (GAME_WIDTH, GAME_HEIGHT // 4 + 100) goto = GAME_MENU while GAME_MODE == GAME_OVER: for event in pygame.event.get(): if event.type == pygame.QUIT: GAME_MODE = GAME_QUIT if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: goto = GAME_MENU mode = 'fade out' if event.key == pygame.K_RETURN: goto = GAME_MENU mode = 'fade out' if mode == 'fade in': darkness -= fadeSpeed elif mode == 'fade out': darkness += fadeSpeed if darkness <= 0 and mode == 'fade in': mode = 'still' elif darkness >= 100 and mode == 'fade out': mode = 'wait' tick = 60 if mode == 'fade in': darkness -= fadeSpeed if GAME_WIDTH - playButton.rect.left < 160: playButton.rect.left -= 2 menuButton.rect.left -= 2 if darkness <= 0: mode = 'still' elif mode == 'fade out': darkness += fadeSpeed if GAME_WIDTH - playButton.rect.left > 0: playButton.rect.left += 2 menuButton.rect.left += 2 if darkness >= 100: tick = 60 if tick > 0: tick -= 1 if tick == 0: GAME_MODE = goto if mode == 'still': if playButton.hovering(): playButton.rect.left = GAME_WIDTH - 165 if playButton.clicked(): mode = 'fade out' goto = GAME_PLAY else: playButton.rect.left = GAME_WIDTH - 160 if menuButton.hovering(): menuButton.rect.left = GAME_WIDTH - 165 if menuButton.clicked(): mode = 'fade out' goto = GAME_MENU else: menuButton.rect.left = GAME_WIDTH - 160 gameDisplay.blit(bg, (0, 0)) gameDisplay.blit(playButton.image, playButton.rect) gameDisplay.blit(menuButton.image, menuButton.rect) dimDisplay(darkness) pygame.display.update() clock.tick(60)