Python PyGame - код перехода, запускаемый, когда он не должен - PullRequest
0 голосов
/ 09 ноября 2018

Я ничего не мог найти по этому поводу, но по какой-то причине мой код перехода продолжает работать, когда я удерживаю кнопку нажатой, поэтому это в основном заставляет вас летать, даже когда этого не происходит, пожалуйста, помогите.

    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 голосов
/ 09 ноября 2018

У нас на самом деле недостаточно кода, чтобы судить, поэтому я просто догадываюсь прямо сейчас. Код, который вы показываете здесь, изменяет y-позицию вашего персонажа, заставляя его «прыгать». Если персонаж постоянно находится на этом уровне, возможно, вам следует изменить положение y где-нибудь еще, чтобы вернуть персонажа обратно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...