使用Rect函数参数的Pygame类型错误

时间:2017-12-16 15:53:21

标签: python pygame

我收到此错误

File "main.py", line 48, in update
    self.rect = self.rect.move((self.dirx, self.diry))
TypeError: argument must contain two numbers

self是一个具有rect属性的sprite对象。在我的游戏中,我试图通过使用:

来移动这些精灵
self.rect = self.rect.move((self.dirx, self.diry))
dirx和diry只是介于1和3之间(表示速度)。 我问过多个同行,但没有人能给我反馈。

EDIT 所以发生的事情是dirx和diry变得太大而无法在另一种方法中被视为整体

3 个答案:

答案 0 :(得分:1)

问题是我在其他地方增加dirx和diry太多而且我觉得它们太大了,它会自动转换成很长的。

答案 1 :(得分:0)

尝试将两个数字作为两个参数传递,而不是传递给元组,如官方文档中所示:

move(self.dirx, self.diry)

https://www.pygame.org/docs/ref/rect.html#pygame.Rect.move

答案 2 :(得分:0)

你将它作为一个元组返回,你需要返回数字。尝试:self.rect = self.rect.move(self.dirx, self.diry)