Python PyGame跳转代码在不应该运行时运行

时间:2018-11-09 16:01:17

标签: python pygame

我什么都找不到,但是由于某些原因,当我按下按钮时,我的跳转代码一直在运行,因此即使没有出现问题,它也可以使您飞行,请帮忙。

    while not gameExit:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            quit()
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_q:
                pygame.quit()
                quit()

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
               x_change = -5
            elif event.key ==  pygame.K_RIGHT:
                x_change = 5
        if event.type == pygame.KEYUP:
            if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
                x_change = 0
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_UP and jumped == 0:
               y_change = -10
               jumped = 1
        if event.type == pygame.KEYUP:
            if event.key == pygame.K_UP:
                y_change = 0
    if x < 32:
        x += 5
    if x > (display_width-32) - char_width:
        x += -5
    if y < 32:
        y += 5
    if y > display_height - char_height:
        y = display_height - char_height
    if y < (display_height-32) - char_height:
        y += 5
    if y > (display_height-32) - char_height:
        jumped = 0
    x2 = x
    y2 = y + char_height
    x3 = x2 + (26)
    if gameDisplay.get_at((x2,y2)) == (0,0,255) or gameDisplay.get_at((x,y)) == (0,0,255) or gameDisplay.get_at((x3,y2)) == (0,0,255):
        y+= -5
        jumped = 0

(当您与地板碰撞时,变量“ jumped”将重置)

1 个答案:

答案 0 :(得分:0)

我们实际上没有足够的代码来判断,所以我现在正在猜测。您在此处显示的代码修改了字符的y位置,使其“跳转”。如果角色持续停留在该高度,则也许您应该在其他位置修改y位置以使角色退回。