Спрайт не двигается постоянно - PullRequest
0 голосов
/ 20 июня 2020

Я пытаюсь создать игру в pygame, у меня есть персонаж, спрайт, который движется, когда я sh нажимаю клавиши со стрелками. Проблема в том, что когда я постоянно двигаюсь вверх, то вниз, спрайт медленно движется вверх. Я не знаю, имеет ли это смысл, но в основном я перемещаю спрайт на 700/12 пикселей вверх, а затем обратно вниз, но после того, как я перемещаю его обратно вниз, он оказывается немного выше, чем раньше.

`   if direction == "up":
        character.rect.bottom -= 700/12
    elif direction == "down":
        character.rect.bottom += 700/12
    elif direction == "left":
        character.rect.x -= 700/12
    elif direction == "right":
        character.rect.x += 700/12`

Ответы [ 2 ]

0 голосов
/ 22 июня 2020

Я понял, что пытался вычесть и добавить 1/3 к моей координате y, которая была странно округлена, потому что после изменения ее на другое int все работало нормально

0 голосов
/ 20 июня 2020

Я подозреваю, что это потому, что вы используете bottom, а не y. (x,y) спрайта относится к верхнему левому углу, а bottom относится к y + height. Это дало бы небольшую разницу в движении.

Простая замена обновленного элемента должна исправить это:

if direction == "up":
    character.rect.y -= 700/12   # <-- HERE, y not bottom
elif direction == "down":
    character.rect.y += 700/12   # <-- HERE, y not bottom
...
...