Пример #1
0
def main():
    global level
    init()
    while level <= numLevels:
        clock.tick(60)
        for event in pygame.event.get():
            if event.type == QUIT:
                sys.exit()
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_RIGHT:
                player.speed[0] = 10
            if event.key == pygame.K_LEFT:
                player.speed[0] = -10
            if event.key == pygame.K_UP:
                player.speed[1] = 10
            if event.key == pygame.K_DOWN:
                player.speed[-1] = -10
        if event.type == pygame.KEYUP:
            if event.key == pygame.K_RIGHT:
                player.speed[0] = 0
            if event.key == pygame.K_LEFT:
                player.speed[0] = 0
            if event.key == pygame.K_UP:
                player.speed[1] = 0
            if event.key == pygame.K_DOWN:
                player.speed[-1] = 0
        screen.fill(color)
        player.update()
        asteroids.update()
        gets_hit = pygame.sprite.spritecollide(player, Asteroid, False)
        Asteroid.draw(screen)
        screen.blit(player.image, player.rect)
        pygame.display.flip()

        if player.checkReset(width):
            if level == numLevels:
                break
            else:
                level += 1
                init()
        elif gets_hit:
            player.reset((levelData['PlayerX'], levelData['PlayerY']))
    win()
Пример #2
0
def run_game():
    pygame.init()
    ai_settings = Settings()
    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height))
    pygame.display.set_caption('Androids Vector')
    ship = Ship()
    asteroid = Asteroid()
    bullets = Group()
    asteroids = pygame.sprite.Group()
    running = True
    clock = pygame.time.Clock()
    #objects = [ship]
    while True:
        dt = clock.tick(30) / 1000
        gf.check_events(ai_settings, screen, ship, bullets)
        ship.update(0.1)
        asteroid.update(0.1)
        bullets.update()
        screen.fill(ai_settings.bg_color)
        #gf.update_screen(ai_settings, screen, ship, asteroids, bullets)
        ship.draw(screen)
        asteroid.draw(screen)
        pygame.display.flip()
Пример #3
0
class Game(object):
    def __init__(self):
        self.player = Player()
        self.asteroid = Asteroid()
        self.menu = Menu()
        self.score = 0
        self.TIMER_START = 60
        self.timer = self.TIMER_START
        self.start_ticks = pygame.time.get_ticks()
        self.cur_ticks = self.start_ticks
        self.previous_score = 0
        self.high_score = 0

    def reset(self):
        self.timer = self.TIMER_START
        self.menu = Menu()
        self.asteroid.reset()
        self.player.destroy()
        self.previous_score = self.score
        if self.previous_score > self.high_score:
            self.high_score = self.previous_score
        self.score = 0

    def update(self):
        if pygame.key.get_pressed()[pygame.K_ESCAPE]:
            self.reset()

        ticks = pygame.time.get_ticks()
        if ticks - self.start_ticks > 1000:
            self.start_ticks = ticks
            self.timer -= 1
            if self.timer < 0:
                # reset game
                self.reset()
                return True

        if self.menu != None:
            if self.menu.update(pygame.key.get_pressed()) == True:
                self.menu = None
            else:
                return False

        self.player.update()
        self.asteroid.update()

        if self.asteroid.check_collision(self.player) == True:
            if self.asteroid.is_good_type():
                self.score += 1
                self.asteroid.reset()
            else:
                self.reset()

        return False

    def draw(self, screen):
        if self.menu is not None:
            self.menu.draw(screen, self.previous_score, self.high_score)
            return

        screen.fill([0, 0, 0])

        font = pygame.font.Font(None, 36)
        text = font.render("Score: {}".format(str(self.score)), 1,
                           (255, 255, 0))
        textpos = text.get_rect()
        screen.blit(text, textpos)

        text = font.render("Timer: {}".format(str(self.timer)), 1,
                           (255, 255, 0))
        textpos = text.get_rect()
        textpos.left = 200
        screen.blit(text, textpos)

        self.player.draw(screen)
        self.asteroid.draw(screen)
        pygame.display.update()