AttributeError:'NoneType'对象没有属性'blit'错误问题

时间:2020-04-22 19:53:20

标签: python pygame

我正在尝试将图像添加到屏幕上,但是我一直收到此错误:

AttributeError:'NoneType'对象没有属性'blit'

这是我的代码:

import pygame

pygame.init()

myscreen = pygame.display.set_mode((500, 500))
myscreen = pygame.display.set_caption(("Mini game"))
icon = pygame.image.load("images\space.png")
pygame.display.set_icon(icon)

playerImg = pygame.image.load("player.png")
playerx = 200
playery = 200

def player():
    myscreen.blit(playerImg, (playerx, playery))

running = True

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

    player() 

1 个答案:

答案 0 :(得分:0)

该错误出现在代码的前两个指令中:

myscreen = pygame.display.set_mode((500, 500))
myscreen = pygame.display.set_caption(("Mini game"))

pygame.display.set_caption()的返回值为None。与窗口关联的表面由pygame.display.set_mode返回,但由于pygame.display.set_caption()的返回值已分配给myscreen而被覆盖。它必须是:

myscreen = pygame.display.set_mode((500, 500))
pygame.display.set_caption(("Mini game"))

此外,您还必须在应用程序循环结束时通过pygame.display.update()pygame.display.flip()更新显示:

import pygame

pygame.init()

myscreen = pygame.display.set_mode((500, 500))
pygame.display.set_caption(("Mini game"))
icon = pygame.image.load("images\space.png")
pygame.display.set_icon(icon)

playerImg = pygame.image.load("player.png")
playerx = 200
playery = 200

def player():
    myscreen.blit(playerImg, (playerx, playery))

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

    player() 
    pygame.display.flip() # <--- this is missing
相关问题