我是pygame的新手,并尝试创建一个简单的程序,允许我使用键盘在屏幕上移动图像。当我尝试使用外观方法在屏幕上获取图像时,我在标题中收到错误。我有一个工作版本,我没有使用类编写,但想了解类,所以我可以在将来实现它们。
这是我的代码:
import pygame, sys
from pygame.locals import *
pygame.init()
FPS = 30
fpsClock = pygame.time.Clock()
DISPLAYSURF = pygame.display.set_mode((600, 500), 0, 32)
pygame.display.set_caption('Animation')
class Hero():
def __init__(self):
posx = 10
posy = 10
def appearance():
return pygame.image.load('C:\\Users\\admin\\Desktop\\right.png')
def move_right(x):
posx += 10
def move_left(x):
posx -= 10
def move_up(y):
posy -= 10
def move_down(y):
posy += 10
new_hero = Hero() #create a Hero
while True:
item = new_hero.appearance
DISPLAYSURF.blit(item, (posx, posy)) #error
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
pygame.display.update()
fpsClock.tick(FPS)
答案 0 :(得分:1)
您正在分配方法,而不是返回值:
item = new_hero.appearance
你应该做的是:
item = new_hero.appearance()
答案 1 :(得分:1)
您的item
是对new_hero.appearance
方法的引用。为了调用该方法并获取它应返回的表面,您需要使用()
:
item = new_hero.appearance()
# Here -------------------^