我不完全确定这些线路有什么问题,我不明白它们为什么会有问题。按问题的顺序(失败的行将以***突出显示)
文件" 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()***
答案 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)))