使用按键选择列表中的项目

时间:2015-11-04 21:24:16

标签: python pygame

我试图创造"车道"在游戏中。到目前为止,我所做的是列出了要排列的元素的像素数量列表。

lanes = [HEIGHT - 300, HEIGHT - 240, HEIGHT - 180, HEIGHT - 120, HEIGHT - 60]

如果用户在键盘上向上或向下按下,我想让一个玩家从一个车道到另一个车道。

keystate = pygame.key.get_pressed()
    if keystate[pygame.K_UP]:
        # I'm not sure what to do right here...
        self.rect.y -= lanes

    if keystate[pygame.K_DOWN]:
        # I'm not sure what to do right here...
        self.rect.y += lanes

如何根据输入有效地循环切换列表项?如果有更好的方法,我会全力以赴。我是一个蟒蛇初学者。

编辑:如果有遗漏的详细信息,请附上完整代码的链接:http://pastebin.com/guAJMXzP

1 个答案:

答案 0 :(得分:0)

您可能希望单独跟踪他们当前所在的车道,并根据该车道设置位置。例如,如果它们从第一个通道开始,您可以初始化self.lane = 0。然后,要通过查找末尾的实际y位置将通道编号保持在适当的范围内,您的更新可能如下所示:

if keystate[pygame.K_UP]:
    self.lane = max(0, self.lane-1)

if keystate[pygame.K_DOWN]:
    self.lane = min(self.lane+1, len(lanes)-1)

self.rect.y = lanes[self.lane]