2013-04-11 18 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?

Btw, больше pythonic должно написать while (N < tilesNeeded): как for N in range(tilesNeeded):, а затем вам не нужно явно увеличивать его.

+0

Благодарим вас за быстрый отклик. Изменение его на символ умножения зафиксировано. Обязательно нужно помнить об этом позже. Еще раз спасибо! – ddaniels

Смежные вопросы