微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Pygame中为单个键改变KMOD状态?

如何解决如何在Pygame中为单个键改变KMOD状态?

| 这是到目前为止我得到的:
for event in pygame.event.get():
    if event.type == KEYDOWN:
        if event.key == K_LEFT:
            mods = pygame.key.get_mods()
            if mods and KMOD_SHIFT:
                movei = -5
            if mods and KMOD_CTRL:
                movei = -20
            else:
                movei = -10
问题在于它似乎一直都只拾取一个或另一个(KMOD_SHIFT或KMDO_CTRL),而不是有选择地。因此,无论我按下哪个修饰符(shift,alt,ctrl等),效果都相同。 我要达到的效果是,屏幕上的角色可以分别爬行,奔跑或行走。 提前致谢。     

解决方法

        您正在使用逻辑
and
运算符,而您确实需要按位运算符
&
。代替
if mods and KMOD_SHIFT:
你要
if mods & KMOD_SHIFT:
只要第一个操作数为真值,逻辑“ 1”将返回第二个操作数的值(在这种情况下,不等于0)。
&
运算符将执行按位与运算,因此仅当
mods
变量中的KMOD常量中的某些位为ON时,才返回非零值(逻辑上解释为true)。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。