• Что не так в моём коде Python?

    Denkuwus
    @Denkuwus
    15 y.o
    Похоже, ошибка, с которой вы столкнулись, вызвана тем, что функция pygame.display.flip() вызывается до того, как режим отображения был установлен с помощью pygame.display.set_mode().

    Чтобы решить эту проблему, вам нужно переместить вызов pygame.display.set_mode() перед вызовом pygame.display.flip(). Это гарантирует, что режим отображения будет установлен до обновления экрана, и устранит ошибку «видеосистема не инициализирована».

    Вот пример того, как вы можете изменить код, чтобы исправить ошибку:

    import pygame
    
    # Initialize pygame
    pygame.init()
    
    # Set window size and title
    screen_width, screen_height = 640, 480
    screen = pygame.display.set_mode((screen_width, screen_height))
    pygame.display.set_caption('Flappy Triangle')
    
    # Set colors
    red = pygame.Color(255, 0, 0)
    blue = pygame.Color(0, 0, 255)
    white = pygame.Color(255, 255, 255)
    
    # Set font
    font = pygame.font.Font(None, 36)
    
    # Set main character size
    character_size = 50
    
    # Set gravity
    gravity = 0.25
    
    # Set main character initial position
    character_x, character_y = screen_width / 2, screen_height / 2
    
    # Set main character speed
    character_speed = 0
    
    # Set game over flag
    game_over = False
    
    # Set points
    points = 0
    
    # Set clock to control frame rate
    clock = pygame.time.Clock()
    
    while not game_over:
        # Handle events
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                game_over = True
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_SPACE:
                    character_speed = -5
                    points += 1 # Increase points by 1 for each jump
    
        # Update main character position
        character_y += character_speed
        character_speed += gravity
    
        # Check if main character has reached the bottom or top of the screen
        if character_y > screen_height or character_y < 0:
            points = 0 # Reset points to 0 when main character dies
            game_over = True
    
        # Draw the screen
        screen.fill((0, 0, 0))
        pygame.draw.polygon(screen, blue, [[character_x, character_y], [character_x + character_size, character_y + character_size / 2], [character_x, character_y + character_size]]) # n.m.
        pygame.draw.line(screen, red, (0, 0), (screen_width, 0), 5)
        pygame.draw.line(screen, red, (0, screen_height), (screen_width, screen_height), 5)
        points_text = font.render(f'Points: {points}', True, white)
        screen.blit(points_text, (10, 10))
    
        # Limit frame rate to 60 FPS
        clock.tick(60)
    
        # Update the screen
        pygame.display.flip()
    
    # Quit pygame
    Ответ написан
    Комментировать
  • Не могу pip install pygame?

    Lord_of_Rings
    @Lord_of_Rings
    Python developer
    Python у меня новейшей версии
    А вот это зря.
    Установите python 3.10 и попробуйте pip3 install pygame
    Ответ написан
    1 комментарий