Esempio n. 1
0
def game_loop() -> None:

    game_over = False
    game_close = False

    while not game_close:

        while game_over and not game_close:
            surface.fill(BLACK)
            show_you_lost_screen()

            pygame.display.update()

            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    game_over = True
                    game_close = True
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_q:
                        game_close = True
                        game_over = True
                    if event.key == pygame.K_c:
                        game_over = False

        snake = Snake(WIDTH, HEIGHT, snake_size)
        food = Food(WIDTH, HEIGHT, snake_size)
        score = 0
        while not game_over:

            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    game_over = True
                    game_close = True
                if event.type == pygame.KEYDOWN:
                    snake.head_direction = event.key

            if snake.eat(food):
                food.generate(WIDTH, HEIGHT, snake_size)
                score += 1

            snake.move()

            if snake.died(WIDTH, HEIGHT):
                game_over = True

            surface.fill(BLACK)
            draw_snake(snake)
            draw_food(food)
            show_score(score)

            pygame.display.update()
            clock.tick(snake_speed)
Esempio n. 2
0
class Ground():
    def __init__(self, x, y):

        self.x = x
        self.y = y
        self.base_object = {}
        self.food_on_map = Food()
        self.material_on_map = Material()
        self.symbol = "X"

    def build_construction(self, building_class, fraction):  #budowanie
        """Buduje budynek, dodaje jego symbol i wartość do słownika i zwraca ten słownik."""

        self.building = building_class
        self.building.build(fraction)  #zbudowanie budynku
        self.building_dict = {}
        self.building = self.building.add_building(
            fraction)  #dodanie do słownika danych budynku
        return self.building

    def update_object_new(
            self):  #zaktualizowanie słownika na obszarze przy rysowaniu mapy
        """Metoda aktualizująca słownik pola o losowe wartości jedzenia i materiałów."""

        self.base_object.update(self.food_on_map.generate())
        self.base_object.update(self.material_on_map.generate())

    def update_object(
            self, obj):  #aktualizowanie oobszaru na mapie np. przy budowaniu
        """Metoda aktualizująca słownik o zadaną wartość."""

        self.base_object.update(obj)