2017-07-27 219 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