2017-07-27 1 views
-3

donc c'est mon premier jeu im travail sur (serpent) et il m'a donné une erreur: ln 21, in update self.rect.centerx += self.direction(0) *2, 'tuple' object is not callable. et j'ai cherché pour les réponses, mais je n'ai pas l'air de trouver mon problème et je ne sais pas ce que signifie « tuple », le jeu code complet est ici:objet 'tuple' n'est pas appelable (python)

import pygame 
from pygame.locals import * 


class SnakeHead(object): 
    def __init__(self): 
     self.image = pygame.image.load('data/snake_head.png') 
     self.rect = self.image.get_rect() 
     self.rect.centerx = 320 
     self.rect.centery = 240  

     self.direction = (0,-1) 
     self.crashed = False 


    def render(self, screen): 
     screen.blit(self.image, self.rect) 

    def update(self): 
     self.rect.centerx += self.direction(0) * 2 
     self.rect.centery += self.direction(1) * 2 

     if self.rect.left < 0: 
      self.rect.left = 0 
      self.crashed = True 

     if self.rect.right > 639: 
       self.rect.right = 639 
       self.crashed = True 

     if self.rect.top < 0: 
       self.rect.top = 0 
       self.crashed = True 

     if self.rect.bottom > 479: 
       self.rect.bottom = 479 
       self.crashed = True 

def run_game(): 
    pygame.init() 

screen = pygame.display.set_mode((640,480)) 

snakehead = SnakeHead() 

clock = pygame.time.Clock() 




while 1: 

    clock.tick(32) 

    for event in pygame.event.get(): 
     if event.type == QUIT: 
      pygame.quit() 
      return 


    screen.fill((175,175,175)) 

    snakehead.update() 
    snakehead.render(screen) 

    pygame.display.flip() ` 

je me pose ce que le probelem était pendant plus de 2 heures, mais ne pouvait pas trouver quoi que ce soit et serait super content si quelqu'un pouvait me le dire :)

-Xattics

+3

« Je ne sais pas ce que signifie« tuple » - Alors le chercher? –

+0

je l'ai fait ... mais il n'a pas vraiment donné une explication à cela. et je suis assez nouveau pour cela, alors ne soyez pas si dur pour moi s'il vous plaît ... – Xattics

Répondre

7

Cette ligne est le problème

self.rect.centerx += self.direction(0) * 2 

direction est un tuple, si vous vouliez dire à l'index vous devriez faire

self.rect.centerx += self.direction[0] * 2 
+0

merci, et pourquoi ces types de points obtiennent tant de downvotes? Y at-il quelque chose qui ne va pas avec ce que j'ai demandé? – Xattics