Pygame,角色移动速度

时间:2018-12-07 22:49:48

标签: python pygame pycharm

我是犹他大学的一名学生,并且正在Pygame的一个项目中工作,我遇到了一些小麻烦。我已经编写了整个游戏的代码,并且可以完美运行,但是我希望角色在某些地形上行走时动作缓慢。例如,如果他/她走过一块沙砖,我希望他/她的速度减半。我仍在学习中,因此无法自行解决。我的代码的链接如下。任何帮助将不胜感激!

我相信解决方案将包含在以下代码行中:

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 :(得分:0)

您有mapx -= 1形式的多行。您可以在此循环之外使用一个变量来跟踪您的速度,然后可以使用mapx -= current_speed移动您的角色。然后,您可以根据不同条件修改速度。

您应该确保游戏的事件循环和地图大小足够大,以免看起来角色正在传送而不是高速运行。