我正在制作第三人称射击游戏,并且有一个玩家对象。我在像这样的初始化中设置x和y值
class Player():
def ____init____(self):
self.x = 500
self.y = 300
,然后在涉及运动的后续函数中引用它们:
def move(self):
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_RIGHT and self.x < 720:
self.x += 2.5
if event.key == pygame.K_LEFT and self.x > 280:
self.x -= 2.5
if event.key == pygame.K_UP and self.y > 80:
self.y -= 2.5
if event.key == pygame.K_DOWN and self.y < 520:
self.y += 2.5
运行程序时,出现错误
AttributeError: 'Player' object has no attribute 'x'
有人可以解释为什么我得到错误吗?我在初始化中定义了x,所以我不知道为什么。预先感谢。
答案 0 :(得分:2)
请注意,def __init__()
单词前后必须只有两个下划线。另外,我认为您必须在init
下适当缩进def __init__()
块,在class Player()
函数下缩进for
迭代,并且对move
同样条件。
if
/ ogs