我最近一直在尝试学习玩游戏,但我遇到了一些麻烦。有一件事是,我根本无法显示图像。我尝试过很多不同的方法,但我得到的最接近的方法是得到这个错误信息,
TypeError:参数1必须是pygame.Surface,而不是函数
当尝试使用.blit()
时。我在教程中见过这样的命令,但由于某种原因,它对我不起作用。我的密码在下面。
Python3.8,Spyder,macOS 10.14.6
import pygame as pg
pg.init()
width = 800
height = 600
white = ((255, 255, 255))
purple = ((100, 0, 130))
screen = pg.display.set_mode((width, height))
pg.display.set_caption("Race Game:")
clock = pg.time.Clock()
car = pg.image.load("car.png")
def car(x, y):
screen.blit(car, (x, y))
x = width * 0.45
y = height * 0.8
crashed = False
while not crashed:
for event in pg.event.get():
if event.type == pg.QUIT:
crashed = True
screen.fill(white)
car(x, y)
pg.display.update()
clock.tick(60)
pg.quit()
quit
发布于 2020-05-14 10:59:35
pygame.Surface对象和函数具有相同的名称car
car = pg.image.load("car.png") def car(x,y):screen.blit(car,(x,y))
函数car
覆盖变量car
,这将导致错误。在函数screen.blit(car, (x, y))
中执行car
时,car
引用的是函数car
,而不是pygame.Surface
对象car
。
你得用不同的名字。例如:
car_image = pg.image.load("car.png")
def car(x, y):
screen.blit(car_image, (x, y))
https://stackoverflow.com/questions/61795316
复制相似问题