2015-06-19 92 views
0
playerOnePosition = (WINDOWHEIGHT - PADDLESIZE) /2 

y = 0 
moveY = 0 

#Creates Rectangles for ball and paddles. 
paddle1 = pygame.Rect(PADDLEOFFSET,(playerOnePosition,(y)), LINETHICKNESS,PADDLESIZE) 

drawPaddle(paddle2) 

clock = pygame.time.Clock() 

while True: #main game loop 
    for event in pygame.event.get(): 
     if event.type == QUIT: 
      pygame.quit() 
      sys.exit() 
     # mouse movement commands 
     if (event.type == pygame.KEYDOWN): 
      if(event.key == pygame.K_DOWN): 
       moveY = -5 
      if (event.key == pygame.K_UP): 
       moveY = 5 
     if (event.type == pygame.UP): 
      if(event.key == pygame.K_DOWN): 
       moveY = 0 
      if (event.key == pygame.K_UP): 
       moveY = 0 
    y += moveY 

    clock.tick(50) 

我的代码的这部分工作不正常,我试图设置键使桨上下移动,但我无法弄清楚我的代码出了什么问题。参数必须是矩形对象

的错误是:Argument must be rect style object

+0

您能否提供[MCVE](http://stackoverflow.com/help/mcve)? – Adalee

+0

@Adalee我是新来的,我已经做对了吗? –

+1

@Joaqin如果我复制你的代码,由于变量的导入和声明,它无法运行。因为我们无法确定你的变量包含什么(例如'LINETHICKNESS'),所以我们不能告诉你究竟是什么错误。 – Adalee

回答

0

不起作用线是这个:

paddle1 = pygame.Rect(PADDLEOFFSET,(playerOnePosition, (y)), LINETHICKNESS,PADDLESIZE) 

Rect expects four (or two, or one) parameters:

pygame.Rect
pygame的对象用于存储矩形ular坐标
Rect(left, top, width, height) -> Rect
Rect((left, top), (width, height)) -> Rect
Rect(object) -> Rect

所以你的leftPADDLEOFFSETLINETHICKNESSwidthPADDLESIZEheight

但是对于top,您有(playerOnePosition, (y)),这是一个元组,不是整数,因为Rect期望。将其更改为一个整数,它会起作用。

Argument must be rect style objectRect类在参数类型错误时引发的一般错误消息。

相关问题