我正在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
答案 0 :(得分:0)
您可以根据播放器所处的地形将其基本速度乘以一个数字。在普通瓷砖上行走时,此数字可以设置为1,这表示速度没有变化,或者设置为0.5,这会将速度减半。
据我从代码中了解的内容,看起来您一次移动了一个像素。您可以将其乘以0.5,以使播放器以一半的速度移动。
如果您可以提供最少的可运行示例或在代码中添加更多注释,则可能会得到更好的答案。