我是犹他大学的一名学生,并且正在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)
您有mapx -= 1
形式的多行。您可以在此循环之外使用一个变量来跟踪您的速度,然后可以使用mapx -= current_speed
移动您的角色。然后,您可以根据不同条件修改速度。
您应该确保游戏的事件循环和地图大小足够大,以免看起来角色正在传送而不是高速运行。