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_s:
state.falling[0] = False
if event.type == pygame.KEYUP and event.key == pygame.K_DOWN:
state.falling[1] = False
if event.type == pygame.KEYDOWN:
if state.state == "playing":
if event.key == pygame.K_p:
state.state = "paused"
if event.key == pygame.K_a:
if valid(state.X[0] - 1, state.Y[0], state.piece[0].form, 0):
state.X[0] -= 1
if event.key == pygame.K_d:
if valid(state.X[0] + 1, state.Y[0], state.piece[0].form, 0):
state.X[0] += 1
if event.key == pygame.K_LEFT:
if valid(state.X[1] - 1, state.Y[1], state.piece[1].form, 1):
state.X[1] -= 1
if event.key == pygame.K_RIGHT:
if valid(state.X[1] + 1, state.Y[1], state.piece[1].form, 1):
state.X[1] += 1
if event.key == pygame.K_w:
new_form = Polyomino.rotate_right(state.piece[0].form,
state.piece[0].size)
if valid(state.X[0], state.Y[0], new_form, 0):
state.piece[0].form = new_form
if event.key == pygame.K_UP:
new_form = Polyomino.rotate_right(state.piece[1].form,
state.piece[1].size)
if valid(state.X[1], state.Y[1], new_form, 1):
state.piece[1].form = new_form
if event.key == pygame.K_s:
state.falling[0] = True
if event.key == pygame.K_DOWN:
state.falling[1] = True
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_duo.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()
评论列表
文章目录