试图跳精灵

时间:2019-02-25 01:25:44

标签: python pygame

**当我按下向上箭头时,子画面会跳跃,但是当它下降时,它会继续下降。这是我的代码。它不能使用向左和向右键来做到这一点。

   x = (display_width * 0.1)
y = (display_height * 0.75)
x_change = 0
y_change = 0

over = False
while over == False:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            over = True

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                x_change -= 5
            if event.key == pygame.K_RIGHT:
                x_change += 5
            if event.key == pygame.K_UP:
                y_change = -30

        if event.type == pygame.KEYUP:
            if event.key == pygame.K_LEFT:
                x_change = 0
            if event.key == pygame.K_RIGHT:
                x_change = 0
            if event.key == pygame.K_UP:
                y_change = 30


    x += x_change
    y += y_change

1 个答案:

答案 0 :(得分:0)

此问题是由y_change在以后的处理期间保留在30上引起的。

if event.type == pygame.KEYUP:
    if event.key == pygame.K_LEFT:
        x_change = 0
    if event.key == pygame.K_RIGHT:
        x_change = 0
    if event.key == pygame.K_UP:
        y_change = 30                # <=== HERE

因此,当事件触发时,y_change变为30-因此位置向下移动。但是在下一个循环中,y_change仍然是 30,因此它一次又一次地向下移动。