按下SHIFT中断按住pygame中的W.

时间:2015-06-23 07:11:04

标签: python pygame keyboard-events

我在Pygame做了一个roguelike。我试图用W或UP键让我的角色向前移动。按住SHIFT时,移动应该快两倍。如果我按住SHIFT然后按W,程序将按原样运行,但是,如果我按住W,并且角色已经向前移动,然后按SHIFT,角色将停止。这只是偶尔发生,但需要修复。

    character_pos = [0,0]
    move_speed = 1
    mods = pygame.key.get_mods()
    if mods & KMOD_SHIFT:
        move_speed = 2
    key = pygame.key.get_pressed()
    if key[pygame.K_w] or key[pygame.K_UP]:
        w_count += move_speed
        if w_count == 20:
            w_count = 0
            if not is_wall(character_pos[0], character_pos[1]-1):
                character_pos[1] -= 1

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

如果w_count从0开始并以 <{em> 12的步长递增,则它会随着20的增加而增加。但如果它由12的组合增加,则可能会从19变为21。这可能是问题吗?尝试将if w_count == 20更改为if w_count >= 20

如果我误解了您的代码,我很抱歉,我并不是100%明白该计数器的目的。