我可以一次触发多个if语句吗?

时间:2015-05-14 12:44:33

标签: python

如果你在看到我之前就问过问题,我正在制作一个tron自行车游戏,但无论如何,我现在把它作为一个双人游戏。我现在的问题是,如果一个人按下一个键,另一个方格停止移动。我知道问题发生的原因,我只是不知道如何修复它。 以下是我的一些代码:

while True:
    timer.tick(60)
    ticks = pygame.time.get_ticks()
    for event in pygame.event.get():
        if event.type == QUIT:
            sys.exit()
    keys = pygame.key.get_pressed()
    if keys[K_w]:
        if key == 'down':
            key = 'down'
        else:
            key = 'up'
    if keys[K_d]:
        if key == 'left':
            key = 'left'
        else:
            key = 'right'
    if keys[K_s]:
        if key == 'up':
            key = 'up'
        else:
            key = 'down'
    if keys[K_a]:
        if key == 'right':
            key = 'right'
        else:
            key = 'left'
    if keys[K_LEFT]:
        if key == 'right1':
            key = 'right1'
        else:
            key = 'left1'
    if keys[K_RIGHT]:
        if key == 'left1':
            key = 'left1'
        else:
            key = 'right1'
    if keys[K_UP]:
        if key == 'down1':
            key = 'down1'
        else:
            key = 'up1'
    if keys[K_DOWN]:
        if key == 'up1':
            key = 'up1'
        else:
            key = 'down1'
    if keys[K_ESCAPE]:
        sys.exit()
    if key == 'up':
        y -= 5
    if key == 'down':
        y += 5
    if key == 'left':
        x -= 5
    if key == 'right':
        x += 5
    if key == 'up1':
        y1 -= 5
    if key == 'down1':
        y1 += 5
    if key == 'left1':
        x1 -= 5
    if key == 'right1':
        x1 += 5
    if x >= 1180:
        x = 1180
    if x <= 0:
        x = 0
    if y >= 780:
        y = 780
    if y <= 0:
        y = 0
    if x1 >= 1180:
        x1 = 1180
    if x1 <= 0:
        x1 = 0
    if y1 >= 780:
        y1 = 780
    if y1 <= 0:
        y1 = 0
    green = GreenSquare()
    blue = BlueSquare()
    screen.blit(backbuffer,(0,0))
    print_text(font,0,800,"Round " + str(round))
    pygame.display.update()

0 个答案:

没有答案