首页 > 解决方案 > pygame中的移动速度

问题描述

我正在 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

标签: pythonpygamepycharm

解决方案


您可以根据玩家所处的地形将玩家的基本速度乘以一个数字。在普通瓷砖上行走时,此数字可以设置为 1,表示速度不变,或设置为 0.5,表示速度减半。

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

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


推荐阅读