我正在做一个游戏作为一个有趣的副项目,我遇到了这个错误,我真的不知道为什么会发生。。。
代码如下:
class players:
def __init__(self, location, image_file, direction):
self.location = location
self.image_file = image_file
self.direction = direction
self.rect = self.image_file.get_rect()
def turn(self, direction, playerImages):
keys = pygame.key.get_pressed()
if keys[pygame.K_a] == True:
self.direction -= 1
if self.direction < -3:
self.direction = 3
if keys[pygame.K_d] == True:
self.direction = 1
if self.direction > 3:
self.direction = 3
if self.direction == -3:
self.image_file = playerImages[0]
if self.direction == -2:
self.image_file = playerImages[1]
if self.direction == -1:
self.image_file = playerImages[2]
if self.direction == 0:
self.image_file = playerImages[3]
if self.direction == 1:
self.image_file = playerImages[4]
if self.direction == 2:
self.image_file = playerImages[5]
if self.direction == 3:
self.image_file = playerImages[6]
return self.direction, self.image_file
我称之为:
skierDirection, playerImage = players.turn(skierDirection, playerImages)
我得到的错误是:
Traceback (most recent call last):
File "C:\Users\Owen\Desktop\coding compile file\SkiFreeX\SkiFreeX.py", line 129, in <module>
main()
File "C:\Users\Owen\Desktop\coding compile file\SkiFreeX\SkiFreeX.py", line 122, in main
skierDirection, playerImage = players.turn(skierDirection, playerImages)
TypeError: turn() missing 1 required positional argument: 'playerImages'
[Finished in 0.385s]
有什么想法吗?
不应直接调用类方法,而应创建该类的实例:
要详细说明您遇到的错误:
这是因为
turn
需要一个players
实例作为第一个参数(self
)。类方法总是作为第一个参数传递给实例,因此p1.turn(skierDirection, playerImages)
实际上会向players.turn
传递3个参数。您必须将()与类名一起使用
遵循以下代码
相关问题 更多 >
编程相关推荐