繁体   English   中英

TypeError:'int'对象不可调用(Pygame)

[英]TypeError: 'int' object is not callable(Pygame)

我正在尝试在屏幕底部加载一个用于小平台游戏的地板。 我也是用这种方式做的,因此以后(我认为)仅将地面负荷放在摄像机中,而不是将其无限负荷。 我确实尝试找到一种解决方案,但是我没有提及“ N”作为功能,因此我不知道。 任何帮助或一般建议,不胜感激。 是的,我知道现在有一些无用的东西,但是我还没有解决它们(FPS,BASICFONT)

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()

这就是问题:

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

特别是Python的20(N)看起来就像您用N的参数调用对象20。但是20是不可调用的整数,因此会引发异常。

你是说20*N吗?

顺便说一句,更多的Python语言是编写while (N < tilesNeeded):至于for N in range(tilesNeeded):然后就不需要显式地增加它了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM