Python pygame中的移动速度

Python pygame中的移动速度,python,pygame,pycharm,Python,Pygame,Pycharm,我正在Pygame中进行一个项目,但遇到了一些小问题。我已经对整个游戏进行了编码,它运行得非常完美,但我希望我的角色在穿越特定地形时放慢移动速度。例如,如果他/她走过沙瓦,我希望他/她的速度减半。由于我还在学习,我自己还没能弄明白这一点。下面是我代码的链接。任何帮助都将不胜感激 我相信解决方案将包含以下代码行: if keys[pygame.K_LEFT]: is_facing_left = True movement_x -= tile_rect.width

我正在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
if键[pygame.K_左]:
_朝向_左侧=正确
移动\u x-=平铺直线宽度
mapx-=1
如果键[pygame.K_RIGHT]:
是否面向左=错误
移动x+=平铺直线宽度
mapx+=1
如果键[pygame.K_UP]:
移动y-=平铺直线高度
mapy-=1
如果键[pygame.K_DOWN]:
移动y+=平铺直线高度
mapy+=1
如果mapx<0:
mapx=0
运动x=0
如果mapx>world.get\u width()-1-贴图\u平铺\u宽度:
mapx=world.get\u width()-1-贴图\u tile\u width
运动x=0
如果mapy<0:
mapy=0
移动_y=0
如果mapy>world.get_height()-1-映射平铺高度:
mapy=world.get\u height()-1-贴图\u tile\u height
移动_y=0
完整代码如下:


您可以将玩家的基本速度乘以一个数字,具体取决于玩家所处的地形。当在普通瓷砖上行走时,这个数字可以设置为1,这意味着速度没有变化,或者设置为0.5,这会将速度减半

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


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

您好,欢迎使用SO!请您将代码简化为一个最小、完整且可验证的((www.stackoverflow.com/mcve))示例?这样你就很容易得到帮助!祝你好运谢谢,托蒂08!刚刚编辑了这个问题!我很感激你的回应,因为我是新来的!