我试图创造"车道"在游戏中。到目前为止,我所做的是列出了要排列的元素的像素数量列表。
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
答案 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]