def get_input():
for event in pygame.event.get():
if event.type == pygame.QUIT: sys.exit()
if event.type == pygame.KEYUP and event.key == pygame.K_DOWN \
and state.state == "falling":
state.state = "playing"
if event.type == pygame.KEYDOWN:
if state.state == "playing":
if event.key == pygame.K_p:
state.state = "paused"
if event.key == pygame.K_LEFT:
if valid(state.X - 1, state.Y, state.piece.form):
state.X -= 1
if event.key == pygame.K_RIGHT:
if valid(state.X + 1, state.Y, state.piece.form):
state.X += 1
if event.key == pygame.K_UP or event.key == pygame.K_SPACE:
new_form = Polyomino.rotate_right(state.piece.form,
state.piece.size)
if valid(state.X, state.Y, new_form):
state.piece.form = new_form
if event.key == pygame.K_DOWN:
state.state = "falling"
elif state.state == "paused":
if event.key == pygame.K_p:
state.state = "playing"
elif state.state == "entering high score":
if event.key == pygame.K_BACKSPACE and state.cursorpos > 0:
state.cursorpos -= 1
state.hiscores[state.scorepos][0] = \
state.hiscores[state.scorepos][0][:state.cursorpos]
elif event.key == pygame.K_RETURN:
scorefile = open("hiscores.csv", "w")
writer = csv.writer(scorefile, dialect = csv.unix_dialect)
for row in state.hiscores:
writer.writerow(row)
scorefile.close()
state.start_game()
elif (event.unicode.isalpha() or event.key == pygame.K_SPACE) \
and state.cursorpos < INFO_WIDTH - 3 - len(str(state.score)):
state.hiscores[state.scorepos][0] = \
state.hiscores[state.scorepos][0][:state.cursorpos] \
+ event.unicode
state.cursorpos += 1
elif state.state == "lost":
if event.key in [pygame.K_SPACE, pygame.K_RETURN]:
state.start_game()
评论列表
文章目录