Python +;=不支持的操作数类型:';int';和';非类型';

Python +;=不支持的操作数类型:';int';和';非类型';,python,python-2.7,nonetype,Python,Python 2.7,Nonetype,我无法解决此问题,我在main方法中给了PapperWalldry 1的值您的第二个参数也直接为None: def moveWall (paddleWall, paddleWallDirY): paddleWall.y+=paddleWallDirY return paddleWall def main(): pygame.init() global DISPLAYSURF ##Font information global BASICFONT,

我无法解决此问题,我在main方法中给了PapperWalldry 1的值

您的第二个参数也直接为None:

def moveWall (paddleWall, paddleWallDirY):
    paddleWall.y+=paddleWallDirY
    return paddleWall

def main():
    pygame.init()
    global DISPLAYSURF
    ##Font information
    global BASICFONT, BASICFONTSIZE
    BASICFONTSIZE = 20
    BASICFONT = pygame.font.Font('freesansbold.ttf', BASICFONTSIZE)

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

    #Initiate variable and set starting positions
    #any future changes made within rectangles
    WallX = WINDOWWIDTH/2 - LINETHICKNESS/2
    WallY = (WINDOWHEIGHT)/2 - LINETHICKNESS/2
    ballX = WINDOWWIDTH/2 - LINETHICKNESS/2
    ballY = WINDOWHEIGHT/2 - LINETHICKNESS/2
    playerOnePosition = (WINDOWHEIGHT - PADDLESIZE) /2
    playerTwoPosition = (WINDOWHEIGHT - PADDLESIZE) /2
    score = 0

    #Keeps track of ball direction
    ballDirX = -1 ## -1 = left 1 = right
    ballDirY = -1 ## -1 = up 1 = down
    paddleWallDirX = 0
    paddleWallDirY = 1

    #Creates Rectangles for ball and paddles.
    paddle1 = pygame.Rect(PADDLEOFFSET,playerOnePosition, LINETHICKNESS,PADDLESIZE)
    paddle2 = pygame.Rect(WINDOWWIDTH - PADDLEOFFSET - LINETHICKNESS, playerTwoPosition, LINETHICKNESS,PADDLESIZE)
    paddle3 = pygame.Rect(PADDLEOFFSET,playerOnePosition, LINETHICKNESS,PADDLESIZE)
    paddleWall = pygame.Rect(WallX, WallY, LINETHICKNESS, 100)  
    ball = pygame.Rect(ballX, ballY, LINETHICKNESS, LINETHICKNESS)

    #Draws the starting position of the Arena
    drawArena()
    drawPaddle(paddle1)
    drawPaddle(paddle2)
    drawPaddle(paddle3)
    drawPaddle(paddleWall)
    drawBall(ball)

    pygame.mouse.set_visible(0) # make cursor invisible

    while True: #main game loop
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()
            # mouse movement commands
            elif event.type == MOUSEMOTION:
                mousex, mousey = event.pos
                paddle1.y = mousey
                paddle3.y = mousey - 100

        drawArena()
        drawPaddle(paddle1)
        drawPaddle(paddle2)
        drawPaddle(paddle3)
        drawPaddle(paddleWall)
        drawBall(ball)

        paddleWall = moveWall(paddleWall, paddleWallDirY)
        ball = moveBall(ball, ballDirX, ballDirY)
        ballDirX, ballDirY = checkEdgeCollision(ball, ballDirX, ballDirY)
        paddleWallDirY = checkEdgeCollisionWall(paddleWall, paddleWallDirY)
        score = checkPointScored(paddle1, paddle3, ball, score, ballDirX)
        ballDirX = ballDirX * checkHitBall(ball, paddle1, paddle2, paddle3, paddleWall, ballDirX)
        paddle2 = artificialIntelligence (ball, ballDirX, paddle2)
或间接地:

def moveWall (paddleWall, paddleWallDirY):
    paddleWall.y+=paddleWallDirY
    return paddleWall

def main():
    pygame.init()
    global DISPLAYSURF
    ##Font information
    global BASICFONT, BASICFONTSIZE
    BASICFONTSIZE = 20
    BASICFONT = pygame.font.Font('freesansbold.ttf', BASICFONTSIZE)

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

    #Initiate variable and set starting positions
    #any future changes made within rectangles
    WallX = WINDOWWIDTH/2 - LINETHICKNESS/2
    WallY = (WINDOWHEIGHT)/2 - LINETHICKNESS/2
    ballX = WINDOWWIDTH/2 - LINETHICKNESS/2
    ballY = WINDOWHEIGHT/2 - LINETHICKNESS/2
    playerOnePosition = (WINDOWHEIGHT - PADDLESIZE) /2
    playerTwoPosition = (WINDOWHEIGHT - PADDLESIZE) /2
    score = 0

    #Keeps track of ball direction
    ballDirX = -1 ## -1 = left 1 = right
    ballDirY = -1 ## -1 = up 1 = down
    paddleWallDirX = 0
    paddleWallDirY = 1

    #Creates Rectangles for ball and paddles.
    paddle1 = pygame.Rect(PADDLEOFFSET,playerOnePosition, LINETHICKNESS,PADDLESIZE)
    paddle2 = pygame.Rect(WINDOWWIDTH - PADDLEOFFSET - LINETHICKNESS, playerTwoPosition, LINETHICKNESS,PADDLESIZE)
    paddle3 = pygame.Rect(PADDLEOFFSET,playerOnePosition, LINETHICKNESS,PADDLESIZE)
    paddleWall = pygame.Rect(WallX, WallY, LINETHICKNESS, 100)  
    ball = pygame.Rect(ballX, ballY, LINETHICKNESS, LINETHICKNESS)

    #Draws the starting position of the Arena
    drawArena()
    drawPaddle(paddle1)
    drawPaddle(paddle2)
    drawPaddle(paddle3)
    drawPaddle(paddleWall)
    drawBall(ball)

    pygame.mouse.set_visible(0) # make cursor invisible

    while True: #main game loop
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()
            # mouse movement commands
            elif event.type == MOUSEMOTION:
                mousex, mousey = event.pos
                paddle1.y = mousey
                paddle3.y = mousey - 100

        drawArena()
        drawPaddle(paddle1)
        drawPaddle(paddle2)
        drawPaddle(paddle3)
        drawPaddle(paddleWall)
        drawBall(ball)

        paddleWall = moveWall(paddleWall, paddleWallDirY)
        ball = moveBall(ball, ballDirX, ballDirY)
        ballDirX, ballDirY = checkEdgeCollision(ball, ballDirX, ballDirY)
        paddleWallDirY = checkEdgeCollisionWall(paddleWall, paddleWallDirY)
        score = checkPointScored(paddle1, paddle3, ball, score, ballDirX)
        ballDirX = ballDirX * checkHitBall(ball, paddle1, paddle2, paddle3, paddleWall, ballDirX)
        paddle2 = artificialIntelligence (ball, ballDirX, paddle2)
moveWall(pw, None)

请注意,
None
值可能是函数调用的结果,例如。

请显示您用于调用
moveWall
的代码。在调用时,PapperWalldry没有值,因此您在设置时出错it@JoaquinE.,请参阅,以获取关于提出包含代码的好问题的指导。(简而言之:它们应该包含足够的内容来重现问题——您应该测试它们在自己运行时是否重现了问题——但仅此而已)@ᴘᴀɴᴀʏɪᴏᴛɪs您能帮助我吗,我必须在明天早上之前完成这项工作。您能发布checkEdgeCollisionWall方法吗?我确实给了PapperWallDiry一个值,为什么是0?您在那里有一个循环,函数
checkEdgeCollisionWall
提供了一个新值
PapperWallDiry
,在某个时刻,返回
None