2013-04-11 64 views
-1

我正在尝试制作一个加载在小平台的屏幕底部的地板。我这样做也是这样,所以稍后会更容易(我认为)只有在相机上的地板加载与无限加载相比。我曾尝试寻找解决方案,但我不提“N”作为一个功能,所以我不知道。任何帮助或一般建议表示赞赏。是的,我知道,里面还有一些没用的东西,但现在我只是还没有得到解决它们,但(FPS,BASICFONT)TypeError:'int'对象不可调用(Pygame)

def drawTiles(): 
    N = 0 
    while (N < tilesNeeded): 
     pygame.draw.rect(DISPLAYSURF, GREEN, (20(N), floorx, TILESIZE, TILESIZE)) 
     pygame.draw.rect(DISPLAYSURF, LIGHTGREEN, ((TILESIZE/4) + (20(N)), (floorx + (TILESIZE/4)), TILESIZE/2, TILESIZE/2)) 
     N = N + 1 

这里是整个节目看

import pygame, sys, random 
from pygame.locals import * 

TILESIZE = 20 
WINDOWWIDTH = 640 
WINDOWHEIGHT = 480 
FPS = 30 
floorx = (WINDOWHEIGHT - (TILESIZE)) 
floory = (WINDOWWIDTH/TILESIZE) 
TileOffset = 20 
tilesNeeded = (WINDOWWIDTH/TILESIZE) 



BLACK =   ( 0, 0, 0) 
WHITE =   (255, 255, 255) 
SKYBLUE =  (200, 210, 255) 
DARKTURQUOISE = ( 3, 54, 73) 
GREEN =   ( 0, 92, 7) 
LIGHTGREEN = ( 0, 135, 15) 


def main(): 
    global FPSCLOCK, DISPLAYSURF, BASICFONT, TILESIZE, floorx, floory, floorCovered, tilesNeeded 

    pygame.init() 
    FPSCLOCK = pygame.time.Clock() 
    DISPLAYSURF = pygame.display.set_mode((WINDOWWIDTH, WINDOWHEIGHT)) 
    pygame.display.set_caption('Alpha One') 

    DISPLAYSURF.fill(SKYBLUE) 

    drawTiles() 



    while True: 
     for event in pygame.event.get(): 
      if event.type == QUIT: 
       pygame.quit() 
       sys.exit() 

     pygame.display.update() 

def drawTiles(): 
    N = 0 
    while (N < tilesNeeded): 
     pygame.draw.rect(DISPLAYSURF, GREEN, (20(N), floorx, TILESIZE, TILESIZE)) 
     pygame.draw.rect(DISPLAYSURF, LIGHTGREEN, ((TILESIZE/4) + (20(N)), (floorx + (TILESIZE/4)), TILESIZE/2, TILESIZE/2)) 
     N = N + 1 





if __name__ == '__main__': 
    main() 

回答

3

这就是问题所在:

pygame.draw.rect(DISPLAYSURF, GREEN, (20(N), floorx, TILESIZE, TILESIZE)) 

特别是20(N)到Python看起来像你调用对象20 N的说法,但20是一个整数,不调用,所以它抛出ŧ他例外。

你的意思是20*N

顺便说一句,更pythonic是写while (N < tilesNeeded):for N in range(tilesNeeded):然后你不需要明确地增加它。

+0

感谢您的快速回复。将其更改为固定的乘法符号。以后肯定要记住这一点。再次感谢! – ddaniels 2013-04-11 04:26:48