def handle(self, event):
gd.BoardGame.handle(self, event) # send event handling up
self.tm = self.time[:]
if event.type == pygame.MOUSEMOTION and self.hand_id > 0:
pos = [event.pos[0] - self.layout.game_left, event.pos[1] - self.layout.top_margin]
r = self.vector_len([pos[0] - self.center[0], pos[1] - self.center[1]])
if r == 0: r = 0.1
if self.hand_id == 1:
h = (self.current_angle(pos, r)) / self.angle_step_12
if int(h) == 0:
self.tm[0] = 12
else:
self.tm[0] = int(h)
elif self.hand_id == 2:
m = (self.current_angle(pos, r)) / self.angle_step_60
self.tm[1] = int(m)
if 0 <= self.tm[1] < 5 and 55 <= self.time[1] <= 59:
if self.tm[0] == 12:
self.tm[0] = 1
else:
self.tm[0] += 1
elif 0 <= self.time[1] < 5 and 55 <= self.tm[1] <= 59:
if self.tm[0] == 1:
self.tm[0] = 12
else:
self.tm[0] -= 1
elif event.type == pygame.MOUSEBUTTONDOWN and event.button == 1:
active = self.board.active_ship
pos = [event.pos[0] - self.layout.game_left, event.pos[1] - self.layout.top_margin]
if active == 0:
r = self.vector_len([pos[0] - self.center[0], pos[1] - self.center[1]])
if r == 0: r = 0.1
self.hand_id = 0
if self.is_contained(pos, coords_id=0):
self.hand_id = 1
elif self.is_contained(pos, coords_id=1):
self.hand_id = 2
elif self.rs[0] * 1.1 > r:
h = (self.current_angle(pos, r)) / self.angle_step_12
if int(h) == 0:
h = 12
self.tm[0] = int(h)
else:
m = (self.current_angle(pos, r)) / self.angle_step_60
self.tm[1] = int(m)
elif active == 1:
self.change_time_btn(1, 0)
elif active == 2:
self.change_time_btn(0, 1)
elif active == 3:
self.change_time_btn(-1, 0)
elif active == 4:
self.change_time_btn(0, -1)
elif event.type == pygame.MOUSEBUTTONUP and event.button == 1:
self.hand_id = 0
if self.tm != self.time:
self.time = self.tm[:]
self.draw_hands()
self.clock_canvas.painting = self.canvas.copy()
评论列表
文章目录