Pygame,角色移动速度
Posted
技术标签:
【中文标题】Pygame,角色移动速度【英文标题】:Pygame, Character Movement Speed 【发布时间】:2019-05-09 16:54:47 【问题描述】:我是犹他大学的一名学生,我正在研究 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】:您有多个格式为mapx -= 1
的行。你可以在这个循环之外使用一个变量来跟踪你的速度,然后你可以使用mapx -= current_speed
来移动你的角色。然后你可以根据不同的情况修改你的速度。
你应该确保你的游戏的事件循环和地图大小足够大,这样你的角色就不会看起来像是在传送而不是在高速运行。
【讨论】:
以上是关于Pygame,角色移动速度的主要内容,如果未能解决你的问题,请参考以下文章