pygame中的移动速度

时间:2018-12-07 18:23:03

标签: 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)

您可以根据播放器所处的地形将其基本速度乘以一个数字。在普通瓷砖上行走时,此数字可以设置为1,这表示速度没有变化,或者设置为0.5,这会将速度减半。

据我从代码中了解的内容,看起来您一次移动了一个像素。您可以将其乘以0.5,以使播放器以一半的速度移动。

如果您可以提供最少的可运行示例或在代码中添加更多注释,则可能会得到更好的答案。