【问题标题】:Movement Speed in pygame [duplicate]pygame中的移动速度[重复]
【发布时间】:2019-05-09 13:00:16
【问题描述】:

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

【问题讨论】:

  • 嗨,欢迎来到 SO!您能否将您的代码简化为最小、完整且可验证的 (minimal reproducible example(www.stackoverflow.com/mcve)) 示例?这样,您将轻松获得帮助!祝你好运!
  • 谢谢,toti08!刚刚编辑了问题!感谢您的回复,因为我是新来的!

标签: python pygame pycharm


【解决方案1】:

您可以将玩家的基本速度乘以一个数字,具体取决于他们所处的地形。在普通瓷砖上行走时,该数字可以设置为 1,表示速度不变,或设置为 0.5,表示速度减半。

根据我从代码中可以理解的情况,您似乎一次移动一个像素。您可以将其乘以 0.5 以使玩家以一半的速度移动。

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

【讨论】:

    猜你喜欢
    • 2019-05-09
    • 2012-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多