Pygame - добавление фонового изображения - PullRequest
0 голосов
/ 08 октября 2019

Я новичок в python и создал небольшую игру. Я хочу добавить фоновое изображение, но это не работает. Изображение не отображается.

Я попробовал его с помощью следующего кода:

background = pygame.image.load("images\\background.png")
screen.blit(background,(0,0))

Ответы [ 2 ]

2 голосов
/ 09 октября 2019

Код в вопросе на самом деле не иллюстрирует проблему. Но если код генерирует ошибку:

background = pygame.image.load ('images / background.png')
pygame.error: Не удалось открыть images / background.png

Тогда просто PyGame не может найти указанный файл изображения.

Однако я ожидаю, что ваш код просто не "сбрасывает" обновления окна / экрана с помощьювызов pygame.display.flip()

import pygame

# Window size
WINDOW_WIDTH      = 400
WINDOW_HEIGHT     = 400

### MAIN
pygame.init()
SURFACE = pygame.HWSURFACE|pygame.DOUBLEBUF|pygame.RESIZABLE
window  = pygame.display.set_mode( ( WINDOW_WIDTH, WINDOW_HEIGHT ), SURFACE )
pygame.display.set_caption("Background Image")

background_image = pygame.image.load('images/grass.png')

clock = pygame.time.Clock()
done = False
while not done:

    # Handle user-input
    for event in pygame.event.get():
        if ( event.type == pygame.QUIT ):
            done = True

    # Movement keys
    keys = pygame.key.get_pressed()
    if ( keys[pygame.K_UP] ):
        print("up")
    #elif ...

    # Update the window, but not more than 60fps
    window.blit( background_image, ( 0,0 ) )
    pygame.display.flip()                    # <-- Flush drawing ops to the screen

    # Clamp FPS
    clock.tick_busy_loop( 60 )

pygame.quit()

Обратите внимание на 4-ую последнюю строку.

0 голосов
/ 09 октября 2019

Взгляните на эту страницу в StackOverflow. У него есть несколько решений, которые вы можете использовать. Я напишу один из них здесь.

Вы можете сделать изображение размером с игровое окно, а затем, прежде чем что-либо еще, отобразить его (0,0).

bg = pygame.image.load("background.png")

#INSIDE OF THE GAME LOOP
gameDisplay.blit(bg, (0, 0))

#OTHER GAME ITEMS

Надеюсь, это тебе поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...