def handle(self, event):
gd.BoardGame.handle(self, event) # send event handling up
if self.show_msg == False:
if event.type == pygame.KEYDOWN or event.type == pygame.MOUSEBUTTONDOWN:
self.auto_check_reset()
if event.type == pygame.KEYDOWN and event.key != pygame.K_RETURN and not self.correct:
lhv = len(self.home_square.value)
self.changed_since_check = True
if event.key == pygame.K_BACKSPACE:
if lhv > 0:
self.home_square.value = self.home_square.value[0:lhv - 1]
else:
char = event.unicode
if (len(char) > 0 and lhv < 3 and char in self.digits):
if lhv == 0:
self.home_square.value += char
elif lhv == 1:
if self.home_square == self.ans_h:
if self.show_24h:
n = int(self.home_square.value + char)
if n > 23:
self.home_square.value = char
else:
self.home_square.value += char
else:
n = int(self.home_square.value + char)
if n > 12:
self.home_square.value = char
else:
self.home_square.value += char
if self.home_square == self.ans_m:
n = int(self.home_square.value + char)
if n > 59:
self.home_square.value = char
else:
self.home_square.value += char
elif lhv == 2:
self.home_square.value = char
if len(self.ans_h.value.strip()) > 0:
if self.home_square == self.ans_h and self.time[0] == int(self.ans_h.value):
self.next_field()
self.home_square.update_me = True
self.mainloop.redraw_needed[0] = True
elif event.type == pygame.KEYDOWN and (
event.key == pygame.K_RETURN or event.key == pygame.K_KP_ENTER) and self.board.active_ship == self.ans_h.unit_id:
if len(self.ans_h.value.strip()) > 0 and self.time[0] == int(self.ans_h.value):
self.next_field()
elif event.type == pygame.MOUSEBUTTONUP:
self.home_square.update_me = True
if self.board.active_ship == self.ans_h.unit_id:
self.home_square.perm_outline_width = 5
self.home_square = self.ans_h
self.board.active_ship = self.ans_h.unit_id
elif self.board.active_ship == self.ans_m.unit_id:
self.home_square.perm_outline_width = 5
self.home_square = self.ans_m
self.board.active_ship = self.ans_m.unit_id
self.home_square.update_me = True
self.mainloop.redraw_needed[0] = True
评论列表
文章目录