pygame - 编程笔记本 - 键盘控制横向移动 - (键盘时刻决定优先级)
作者:互联网
# 初始化键盘时刻 (ticks)
ticks_K_a = 0
ticks_K_d = 0
# 初始化横向移动系数 [1,-1]
sign_direction_horizonal = 0
# 主事件循环
while True:
# 检测键盘按住的键位 累加键盘时刻
list_key_pressed = pygame.key.get_pressed()
if list_key_pressed[pygame.K_a]:
ticks_K_a += 1
else:
ticks_K_a = 0
if list_key_pressed[pygame.K_d]:
ticks_K_d += 1
else:
ticks_K_d = 0
# 当a和d的键盘时刻都不为0时 取两键盘时刻的较小者 作为有效按键 修改横向速度方向系数 if ticks_K_a != 0 and ticks_K_d != 0: if ticks_K_a <= ticks_K_d: sign_direction_horizonal = -1 else: sign_direction_horizonal = 1
# 当a或d两个键其中一个键的键盘时刻不为0时 若另一个为0 则取不为0者作为有效按键 # 修改横向速度方向系数 if ticks_K_a > ticks_K_d and ticks_K_d == 0: sign_direction_horizonal = -1 if ticks_K_a < ticks_K_d and ticks_K_a == 0: sign_direction_horizonal = 1
# 当两个键的键盘时刻都为0时 修改横向速度方向系数为0 if ticks_K_a == 0 and ticks_K_d == 0: sign_direction_horizonal = 0
# 当a和d的键盘时刻都不为0时 取两键盘时刻的较小者 作为有效按键 修改横向速度方向系数 if ticks_K_a != 0 and ticks_K_d != 0: if ticks_K_a <= ticks_K_d: sign_direction_horizonal = -1 else: sign_direction_horizonal = 1
# 当a或d两个键其中一个键的键盘时刻不为0时 若另一个为0 则取不为0者作为有效按键 # 修改横向速度方向系数 if ticks_K_a > ticks_K_d and ticks_K_d == 0: sign_direction_horizonal = -1 if ticks_K_a < ticks_K_d and ticks_K_a == 0: sign_direction_horizonal = 1
# 当两个键的键盘时刻都为0时 修改横向速度方向系数为0 if ticks_K_a == 0 and ticks_K_d == 0: sign_direction_horizonal = 0
标签:优先级,ticks,键盘,pygame,key,时刻,pressed 来源: https://www.cnblogs.com/Zenda/p/16154180.html