我最近一直在尝试学习Pygame,但遇到了一些麻烦。一件事是我根本无法显示图像。我尝试了许多不同的方法,但最接近的是收到此错误消息,
TypeError: argument 1 must be pygame.Surface, not function
尝试使用时.blit()
。我在教程中已经看到该命令以这种方式使用,但是由于某种原因,它对我不起作用。我的代码如下。
Python 3.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
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))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句