Python +;=不支持的操作数类型:';int';和';非类型';
我无法解决此问题,我在main方法中给了PapperWalldry 1的值您的第二个参数也直接为None: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,
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
。