Почему изображение не загружается? [дубликат]

avatar
AlphaVoltage
8 августа 2021 в 18:52
51
1
1

по какой-то причине изображение марио не загружается в игре the forest.png - это фон, если вы запустите а mario.png - это персонаж Я сделал несколько тестов, но независимо от того, что он продолжает не загружаться это также игра из учебника Tech With Tim, я следил за ним построчно но все равно не работает (Ошибок нет, просто не загружается персонаж)

import pygame
import os, sys
pygame.init()

win = pygame.display.set_mode((500,500))


pygame.display.set_caption("the game!!!")
APP_FOLDER = os.path.dirname(os.path.realpath(sys.argv[0]))

#background_image = pygame.image.load(r"C:\Users\NONAME\Desktop\Coding\Games\Learning\forest.png").convert()
background_image = pygame.image.load(os.path.join(APP_FOLDER, 'forest.png')).convert()

#mario = pygame.image.load(r"C:\Users\NO NAME\Desktop\Coding\Games\Learning\mario.png").convert()
R_mario = pygame.image.load(os.path.join(APP_FOLDER, 'mario.png')).convert()
L_mario = pygame.transform.flip(R_mario, True, False)


screenWidth = 500
x = 50
y = 425
width = 40
height = 60
vel = 10
isJump = False
jumpCount = 10
left = False    
right = True
walkcount = 0

def redrawGameWindow():
    global walkcount

    win.blit(background_image, [0, 0])
    
    pygame.display.update()

    if left == True:
        win.blit(L_mario, (x, y))
        print("work left")
    elif right == True:
        win.blit(R_mario, (x, y))
        print("work right")


#mainloop
run = True
while run:
    pygame.time.delay(27)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

    keys = pygame.key.get_pressed()

    if keys[pygame.K_LEFT] and x > vel:
        x -= vel
        Left = True
        right = False
    elif keys[pygame.K_a] and x > vel:
        x -= vel
        right = True
        left = False
    else:
        right = False
        left = False

    if keys[pygame.K_RIGHT] and x < screenWidth - width - vel:
        x += vel
    if keys[pygame.K_d] and x < screenWidth - width - vel:
        x += vel

    if not(isJump):
        if keys[pygame.K_SPACE]:
            isJump = True
    else:
        if jumpCount >= -10:
            neg = 1
            if jumpCount < 0:
                neg = -1
            y -= (jumpCount ** 2) * 0.5 * neg
            jumpCount -= 1
        else:
            isJump = False
            jumpCount = 10

    redrawGameWindow()


pygame.quit()
Источник
AlphaVoltage
8 августа 2021 в 18:55
0

как я уже сказал, сообщения об ошибке нет, и я использовал то же самое для фона, который работал нормально

AlphaVoltage
8 августа 2021 в 18:56
0

нет персонаж не загружается

AlphaVoltage
8 августа 2021 в 18:56
0

Я могу предоставить изображение, если вам нужно

MattDMo
8 августа 2021 в 18:57
0

Загружается ли изображение, когда вы раскомментируете строку с полным путем и закомментируете другую? А вы абсолютно уверены, что изображение существует?

AlphaVoltage
8 августа 2021 в 18:58
0

Нет, к сожалению, это не так

AlphaVoltage
8 августа 2021 в 18:59
0

так как же мне решить этого Rabbid?

Ответы (1)

avatar
Rabbid76
8 августа 2021 в 18:59
0

Вы должны blit символ перед обновлением дисплея:

def redrawGameWindow():
    global walkcount

    win.blit(background_image, [0, 0])
    
    if left == True:
        win.blit(L_mario, (x, y))
        print("work left")
    elif right == True:
        win.blit(R_mario, (x, y))
        print("work right")

    pygame.display.update()

Обратите внимание, однако, что если right == False и left == False, вообще ничего не рисуется.

AlphaVoltage
8 августа 2021 в 19:01
0

Сработало! Большое спасибо!!!!