Не удается отобразить изображения в Pygame с помощью Blit - PullRequest
1 голос
/ 31 марта 2020

У меня есть следующий код, где я пытаюсь загрузить два изображения, используя .blit:

import pygame

pygame.init()

width = 1600
height = 900
screen = pygame.display.set_mode((width, height))

attackImg = pygame.image.load('attack.png')
healImg = pygame.image.load('heal.png')
manaImg = pygame.image.load('mana.png')
moveImg = pygame.image.load('move.png')
shieldImg = pygame.image.load('shield.png')
stunImg = pygame.image.load('stun.png')


while True:
  screen.fill((255, 255, 255))
  screen.blit(healImg, (100, 800))
  screen.blit(attackImg, (200, 800))
  pygame.display.update()

Я не получаю сообщений об ошибках при запуске кода, но изображения не отображаются. Файлы изображений доступны, и их правильные имена были использованы. Я прочитал несколько уроков и не вижу, что я сделал неправильно. Код пишется и запускается в repl.it, если это что-то меняет. Пожалуйста, помогите мне понять, почему изображения не отображаются и что нужно изменить.

1 Ответ

0 голосов
/ 31 марта 2020

Я скопировал ваш код и, во-первых, окно не показывалось. В вашем коде не было события l oop. Вы почти всегда должны это делать, иначе окно не запустится. Вы также можете захотеть создать переменную running = True. Без этого ваша программа вряд ли закроется нормально. Вот правильный код:

import pygame

pygame.init()

width = 1600
height = 900
screen = pygame.display.set_mode((width, height))

attackImg = pygame.image.load('attack.png')
healImg = pygame.image.load('heal.png')

running = True
while running:
  screen.fill((255, 255, 255))
  for event in pygame.event.get(): # <--- 'event loop'
    if event.type == pygame.QUIT:
        running = False
  screen.blit(healImg, (100, 800))
  screen.blit(attackImg, (200, 800))
  pygame.display.update()

Если это не сработает, вероятно, это просто то, что изображения закрывают друг друга, или они «моргнуты» за пределами вида. В этом случае напишите комментарий.

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