2017-07-27 221 views
-3

所以这是我的第一个游戏im工作(蛇),它给了我一个错误:ln 21, in update self.rect.centerx += self.direction(0) *2, 'tuple' object is not callable. ,我已经查找了答案,但我似乎没有找到我的的问题,我不知道是什么“元组”是指,完整的游戏代码是在这里:'元组'对象不可调用(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() ` 

我一直在问自己什么probelem是超过2小时,但无法找到任何东西,是超开心如果有人能告诉我:)

-Xattics

+3

“我不知道什么‘元组’的手段” - 然后看它? –

+0

我确实......但它并没有真正给出解释。而且我很新,所以请不要对我这么苛刻...... – Xattics

回答

7

此行是问题

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

directiontuple,如果你的意思是索引你应该做

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

谢谢,为什么这些点会得到如此多的降价?我问的是什么问题? – Xattics