多个意外错误

时间:2016-08-27 19:44:43

标签: python python-3.x

我不完全确定这些线路有什么问题,我不明白它们为什么会有问题。按问题的顺序(失败的行将以***突出显示)

文件" C:\ Users \ Harry \ Desktop \ CS Project \ game test",第32行,在drawArena中     pygame.draw.line(DISPLAYSURF,WHITE,((WINDOWWIDTH / 2),0),((WINDOWWIDTH / 2),WINDOWHEIGHT),(LINETHICKNESS / 4)) TypeError:期望的整数参数,浮点数

文件" C:\ Users \ Harry \ Desktop \ CS Project \ game test",第144行,主要     drawArena()

文件" C:\ Users \ Harry \ Desktop \ CS Project \ game test",第178行,in     main()的

def drawArena():
    DISPLAYSURF.fill((0,0,0))
    #Draw outline of arena
    pygame.draw.rect(DISPLAYSURF, WHITE, ((0,0),(WINDOWWIDTH,WINDOWHEIGHT)), LINETHICKNESS*2)
    #Draw centre line
    ***pygame.draw.line(DISPLAYSURF, WHITE, ((WINDOWWIDTH/2),0),((WINDOWWIDTH/2),WINDOWHEIGHT), (LINETHICKNESS/4))***

***drawArena()***
drawPaddle(paddle1)
drawPaddle(paddle2)
drawBall(ball)

if __name__ == '__main__':
    ***main()***

1 个答案:

答案 0 :(得分:1)

它告诉你错误。使用方法pygame.draw.line()时,必须为行的尺寸提供整数参数。如果你看一下有问题的一行:

pygame.draw.line(DISPLAYSURF, WHITE, ((WINDOWWIDTH/2),0),((WINDOWWIDTH/2),WINDOWHEIGHT), (LINETHICKNESS/4))

这些除法运算的一个或多个商导致浮点数(十进制)。解决此问题的一种简单方法是使用Python int()函数将任何小数舍入为整数,如下所示:

pygame.draw.line(int((WINDOWWIDTH/2)),0),(int((WINDOWWIDTH/2)),WINDOWHEIGHT), int((LINETHICKNESS/4)))

如果是int,由于某种原因不适合,你也可以使用Python round()函数:

pygame.draw.line(round((WINDOWWIDTH/2)),0),(round((WINDOWWIDTH/2)),WINDOWHEIGHT), round((LINETHICKNESS/4)))