所以我让我的角色(玩家)在同时按“左键”或“右键”的同时按“L shift”可以更快地改变速度。 问题是,我想让这个“冲刺”在达到我设定的极限时停止。我希望我的角色不要一次冲刺超过400米。有什么可能的方法我可以用。。?因为我试了很多,但还是找不到任何有效的。 这是我的主回路中设置破折号的部分。char在循环之前定义
运行时:
clock.tick(20)
for event in pygame.event.get():
keys = pygame.key.get_pressed()
mods = pygame.key.get_mods()
if event.type == pygame.QUIT:
run = False
elif keys[pygame.K_LEFT] and mods & pygame.KMOD_LSHIFT or keys[pygame.K_RIGHT] and mods & pygame.KMOD_LSHIFT:
print("pressed: SHIFT")
char.vel = 20
#I wanna set dash limit to 400px but evry try sitll is all failled..
else:
char.vel = 5
对短跑使用实时毫秒限制是相当容易的。然后,您可以将时间校准到您希望的破折号长度
在下面的代码中,我将这个时间限制设置为
DASH_TIME_LIMIT
。播放器char
有一个名为char.dash_finish
的新成员变量。当短跑开始时,我们把短跑的时间限制放在这里。然后在主循环中,我们检查每个帧,看看当前时间是否在这个时间之后,这表明时间限制已经过期要开始冲刺,首先我们要检查他们是否已经冲刺。那么
dash_finish
时间就是“现在”加上未来几毫秒使用时间限制比计算播放器每帧遍历的像素数更容易
不需要测量像素,您可以创建一个名为
dash_count
的变量,首先将其设置为零,然后在字符破折号结束时使其增加1。这可以通过while循环实现:相关问题 更多 >
编程相关推荐