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

原创文章,作者:Carrie001128,如若转载,请注明出处:https://blog.ytso.com/244262.html

(0)
上一篇 2022年4月16日
下一篇 2022年4月16日

相关推荐

发表回复

登录后才能评论