2011-01-28 1 views
1

Salutations,Est-ce que rect.center change les propriétés rect?

Il semble que j'ai un peu de mal avec un projet sur lequel je travaille en pygame. Pour un de mes objets i utilisés:

image.get_rect() 

et attribué à:

self.rect 

Je comprends les coordonnées par défaut de la fonction get_rect donne une valeur de (0,0). En conséquence, je:

self.rect.center = (320,240) 

Pour placer à peu près le sprite au milieu de l'écran. Cependant, plus tard dans une fonction hitTest, je veux appeler:

self.rect.colliderect(other_rect) 

Je reçois une erreur: objet « tuple » n'a pas cession "colliderect. Est-ce parce que l'affectation self.rect.center change les propriétés de self.rect?

Répondre

1

Le type de ligne est immuable. Autrement dit, une fois défini, vous ne pouvez pas le changer.

Je suppose que colliderect essaie de modifier un tuple.

Utilisez une liste à la place de ce tuple.

+0

Je vois ce que vous dites. En fait, j'ai trouvé la raison pour laquelle il ne me permettait pas d'exécuter le module Collidepoint. Plus tôt dans le script j'avais fait self.rect = un tuple, c'est pourquoi il m'a jeté l'erreur car il assignait self.rect une autre valeur (ce n'était plus un (rect)). Quoi qu'il en soit, l'appel self.rect.center n'affecte pas le statut de l'objet rect. C'était une raison complètement différente pour laquelle cela m'a donné cette erreur. J'apprécie votre aide, merci! – user577317

Questions connexes