2017-09-24 4 views
-2

Bonjour J'essaie de faire suivre la souris au joueur pendant que le joueur pointe vers la souris. Pour que cela fonctionne, j'aurai besoin de la position du joueur. Voilà ce que je suis arrivé à ce jourJe reçois un message d'erreur pour quelque chose que je n'écris pas

pos = pygame.mouse.get_pos() 
xplayer_pos= player.get_rect().centerx 
yplayer_pos= player.get_rect().centery 
angle = 360-math.atan2(pos[1]-xplayer_pos[1],pos[0]-yplayer_pos[0])*180/math.pi  
rotimage = pygame.transform.rotate(player,angle) 
rect = rotimage.get_rect(center=(xplayer_pos,yplayer_pos)) 
screen.blit(rotimage,rect) 
screen.blit(rotimage,pos) 
pygame.display.update() 

mais je reçois ce message eror

angle = 360-math.atan2(pos[1]-xplayer_pos[1],pos[0]-yplayer_pos[0])*180/math.pi 
TypeError: 'int' object has no attribute '__getitem__' 

Je ne comprends pas pourquoi je reçois cette cause de message dans ce lin, je ne l'utilise quelque chose comme « getitem '. Merci pour votre temps.

+0

Quelque chose n'est pas ce que l'on s'attend à être. Je vous recommande de découper la grande expression dans les plus petites parties possibles (en stockant le résultat dans des variables temporaires) et il sera beaucoup plus facile de localiser où le problème pourrait être. –

+1

Vous avez 'xplayer_pos = player.get_rect(). Centerx', ainsi xplayer_pos est déjà une valeur unique (int), pas un tuple (unliked' pos'). Idem pour yplayer_pos. – Evert

+1

'[]' ceci est '__getitem__' dans votre code. Il essaie d'obtenir l'article à l'endroit que vous avez spécifié. – ayhan

Répondre

0

player.get_rect().centerx est un nombre entier. xplayer_pos[1] n'a aucun sens. (__getitem__ fait référence à l'opérateur [].)