Я пытаюсь понять и применить этот однолинейный дубль для l oop вне пигмея. Удвоение для l oop:
for m in (move_map[key] for key in move_map):
Это первоначально из кода, который, id имя: sloth, написал на странице:
Pygame: key.get_pressed ( ) не совпадает с очередью событий
#the list
move_map = {pygame.K_LEFT: pygame.Vector2(-1, 0),
pygame.K_RIGHT: pygame.Vector2(1, 0),
pygame.K_UP: pygame.Vector2(0, -1),
pygame.K_DOWN: pygame.Vector2(0, 1)}
#in the game loop
for m in (move_map[key] for key in move_map if pressed[key]):
Сначала я сделал печать (m), чтобы понять механику (которая работала):
move_map = {pygame.K_LEFT: pygame.Vector2(-1, 0),
pygame.K_RIGHT: pygame.Vector2(1, 0),
pygame.K_UP: pygame.Vector2(0, -1),
pygame.K_DOWN: pygame.Vector2(0, 1)}
for m in (move_map[key] for key in move_map):
print(m)
Я ошарашил даже больше, но не сработало:
move_map = {(-1, 0),
(1, 0),
(0, -1),
(0, 1)}
for m in (move_map[key] for key in move_map):
print(m)
Может ли кто-нибудь дать мне простой пример того, как это использовать?