Pygame não blitting imagem,em vez de cuspir para fora o tipo de erro

0

Pergunta

Então, eu estava assistindo esse tutorial on-line sobre o pygame como eu sou extremamente novo para pygame. Então o que ele fez foi criar um jogador (a) de função e, em seguida, blit-lo. Então eu fiz o mesmo. Para ele, ele entende perfeitamente blitted, mas para mim, eu recebo um erro de tipo. A única coisa diferente entre o seu código e o meu é as dimensões da janela e jogador de classe e cores. Eu tentei pesquisar aqui no estouro de pilha, mas a única questão relevante foi a resposta. Não sei o que deu errado.

cheio de erro:

/home/Command Blocks/Desktop/venv/bin/python "/home/CommandBlocks/Desktop/CLASS_/Studies/Computer/python/practice/space shooter/main.py"
pygame 2.0.2 (SDL 2.0.16, Python 3.9.5)
Hello from the pygame community. https://www.pygame.org/contribute.html
Traceback (most recent call last):
  File "/home/Command Blocks/Desktop/CLASS_/Studies/Computer/python/practice/space shooter/main.py", line 33, in <module>
    player()
  File "/home/Command Blocks/Desktop/CLASS_/Studies/Computer/python/practice/space shooter/main.py", line 20, in player
    screen.blit(player, (playerX, playerY))
TypeError: argument 1 must be pygame.Surface, not function

Process finished with exit code 1

código completo:

import pygame

#Initialize pygame module
pygame.init()

#Create Screen
screen = pygame.display.set_mode((1000, 600))

#Title and Icon
pygame.display.set_caption("Jungle Invader")
icon = pygame.image.load('fox-sitting.png')
pygame.display.set_icon(icon)

# Player
player = pygame.image.load('cat.png')
playerX = 300
playerY = 500

def player():
    screen.blit(player, (playerX, playerY))


#Main loop
running = True
while running:
    pygame.display.update()

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

    screen.fill((244, 232, 255))
    player()
pygame python python-3.x
2021-11-23 13:55:58
1

Melhor resposta

0

Você tem usado o nome do jogador duas vezes. É a superfície devolvidos por pygame.image.load('cat.png') e a função que blits para a tela. Mudar o nome do player função drawPlayer

2021-12-22 18:50:39

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................