2013-05-19 113 views
0

我正在用pygame制作一个非常简单的游戏来练习。我试图让我的“玩家”在空格键被按下时跳转。这里是我想要的循环代码:让玩家在Pygame中跳跃

x,y=10,300 
movex,movey=0,0 


if event.type==KEYDOWN: 
    if event.key==K_LEFT: 
     movex = -0.2 
    elif event.key==K_RIGHT: 
     movex=+0.2 
    elif event.key==K_DOWN: 
     movey=+0.2 
    elif event.key==K_SPACE: 
     movey=-0.4 
     movey=+0.4 

if event.type==KEYUP: 
     if event.key==K_LEFT: 
      movex = 0 
     elif event.key==K_RIGHT: 
      movex=0 
     elif event.key==K_DOWN: 
      movey=0 
     elif event.key==K_SPACE: 
      movey=0 


x+=movex 
y+=movey 
screen.blit(player,(x,y)) 

控件除了跳转部分(当我按空格键时)工作。它就像是让玩家滑下去。谁能告诉我为什么它不起作用以及如何解决它?

+0

我beleive你y轴的运动应该是你不断应用重力...然后再与一个“地板”的方向向量界限 –

回答

1

它不能在keydown事件工作,因为你正在做的:

movey=-0.4 
    movey=+0.4 

这到底是相当于movey=0。要解决它,你应该做的只有movey=+0.4,然后KEYUP它将恢复为0。