Python rect.center是否更改rect属性?

Python rect.center是否更改rect属性?,python,pygame,hittest,Python,Pygame,Hittest,您好 看来我在pygame中的一个项目上遇到了点麻烦。 对于我使用的一个对象: image.get_rect() 并将其分配给: self.rect 我知道get_rect函数的默认坐标值为(0,0)。 因此,我使用了: self.rect.center = (320,240) 把雪碧大致放在屏幕中间。但是,稍后在hitTest函数中,我想调用: self.rect.colliderect(other_rect) 我得到一个错误:“tuple”对象没有赋值“colliderect” 发生

您好

看来我在pygame中的一个项目上遇到了点麻烦。 对于我使用的一个对象:

image.get_rect()
并将其分配给:

self.rect
我知道get_rect函数的默认坐标值为(0,0)。 因此,我使用了:

self.rect.center = (320,240)
把雪碧大致放在屏幕中间。但是,稍后在hitTest函数中,我想调用:

self.rect.colliderect(other_rect)
我得到一个错误:“tuple”对象没有赋值“colliderect”


发生这种情况是因为self.rect.center分配更改了self.rect的属性吗

元组类型是不可变的。也就是说,一旦设置,就不能更改它

我假设colliderect试图修改一个元组


使用列表代替该元组。

元组类型是不可变的。也就是说,一旦设置,就不能更改它

我假设colliderect试图修改一个元组


用列表代替元组。

我明白你的意思。我实际上找到了它不允许我执行collidepoint模块的原因。在前面的脚本中,我将self.rect设置为tuple,这就是为什么它会抛出错误,因为它为self.rect分配了另一个值(它不再是(rect))。无论如何,self.rect.center调用不会影响rect对象的状态。这是一个完全不同的原因,为什么它给了我那个错误。谢谢你的帮助,谢谢!我明白你的意思。我实际上找到了它不允许我执行collidepoint模块的原因。在前面的脚本中,我将self.rect设置为tuple,这就是为什么它会抛出错误,因为它为self.rect分配了另一个值(它不再是(rect))。无论如何,self.rect.center调用不会影响rect对象的状态。这是一个完全不同的原因,为什么它给了我那个错误。谢谢你的帮助,谢谢!