繁体   English   中英

通过按键选择列表中的项目

[英]selecting items in a list with key presses

我正在尝试在游戏中创建“通道”。 到目前为止,我所做的工作是为要排列的元素创建一个像素数量列表。

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

如何根据输入有效地逐步遍历列表项? 如果有更好的方法可以做到,我全神贯注。 我是python初学者。

编辑:包括完整代码的链接,以防万一我忘记的细节很重要: http : //pastebin.com/guAJMXzP

您可能需要单独跟踪它们当前所在的车道,并仅根据其设置位置。 例如,如果它们从第一个车道开始,则可以初始化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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM