мне нужна помощь, я не могу загрузить изображения в pygame, у меня есть изображения в нужном месте - PullRequest
0 голосов
/ 06 августа 2020

По какой-то причине я не могу загрузить изображения в pygame, которые я пробовал, и это сработало. Вот код. Я уверен, что изображение находится в нужном файле. Мне нужна помощь, пожалуйста, помогите. Я новичок в подобных вещах.

import pygame

pygame.init()

screen = pygame.display.set_mode((800, 600))

playerImg = pygame.image.load("spaceship.png")

playerX = 350
playerY = 500
playerX_change = 0


running = True;
while running:
    
    screen.fill((255, 0, 0))
    playerX += 0.2

    def player(x, y):
        screen.blit(playerImg, (x, y))


    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
            
            player(playerX, playerY)
            pygame.display.update()

1 Ответ

1 голос
/ 06 августа 2020

Вы определили функцию для рисования изображения внутри основного l oop, но код на самом деле не вызывает рисование:

running = True;
while running:
    
    screen.fill((255, 0, 0))
    playerX += 0.2

    def player(x, y):                            # <<-- HERE
        screen.blit(playerImg, (x, y))           # <<-- HERE

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
            
            player(playerX, playerY)
            pygame.display.update()

Вероятно, просто перемещает функцию за пределы основного l oop, и вызов его с l oop будет работать:

import pygame

def player( screen, x, y ):                              # <<-- HERE
    """ Draw the player bitmap at x,y """
    screen.blit( playerImg, ( x, y ) )


pygame.init()
screen = pygame.display.set_mode((800, 600))

playerImg = pygame.image.load("spaceship.png")
playerX = 350
playerY = 500
playerX_change = 0

# Main Loop    
clock = pygame.time.Clock()
running = True;
while running:
    
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    screen.fill((255, 0, 0))
    playerX += 0.2
            
    player( screen, playerX, playerY )   # <<-- HERE
   
    pygame.display.update()
    clock.tick( 60 )  # limit FPS
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...