Pygame, скорость движения персонажа - PullRequest
0 голосов
/ 08 декабря 2018

Я учусь в Университете Юты и работаю над проектом в Пигаме, с которым у меня небольшие проблемы.Я закодировал всю игру, и она отлично работает, но я хотел бы, чтобы мой персонаж замедлял движение при прохождении по определенной местности.Например, если он ходит по песчаной плитке, я бы хотел, чтобы его скорость сократилась вдвое.Я не был в состоянии понять это самостоятельно, поскольку я все еще учусь.Ссылка на мой код ниже.Любая помощь будет принята с благодарностью!

Я считаю, что решение будет заключаться в следующих строках кода:

if keys[pygame.K_LEFT]:
    is_facing_left = True
    movement_x -= tile_rect.width
    mapx -= 1
if keys[pygame.K_RIGHT]:
    is_facing_left = False
    movement_x += tile_rect.width
    mapx += 1
if keys[pygame.K_UP]:
    movement_y -= tile_rect.height
    mapy -= 1
if keys[pygame.K_DOWN]:
    movement_y += tile_rect.height
    mapy += 1

if mapx < 0:
    mapx = 0
    movement_x = 0
if mapx > world.get_width()-1 - map_tile_width:
    mapx = world.get_width()-1 - map_tile_width
    movement_x = 0
if mapy < 0:
    mapy = 0
    movement_y = 0
if mapy > world.get_height()-1 - map_tile_height:
    mapy = world.get_height()-1 - map_tile_height
    movement_y = 0

Полный код приведен здесь, если вы хотите его увидеть:

https://github.com/DanPatWils/AdventureGame/blob/master/Almost

1 Ответ

0 голосов
/ 08 декабря 2018

У вас есть несколько строк вида mapx -= 1.Вы можете использовать переменную вне этого цикла, которая отслеживает вашу скорость, а затем вы можете использовать mapx -= current_speed для перемещения вашего персонажа.Затем вы можете изменить свою скорость в соответствии с различными условиями.

Вы должны убедиться, что цикл событий вашей игры и размер карты достаточно велики, чтобы он не выглядел так, как будто ваш персонаж телепортируется, а не бежит с высокой скоростью.

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