def __init__(self, director, background_name): ''' Constructor ''' Scene.__init__(self, director, background_name) self.functional_group = Functional_Group() self.scene_winner = Sce_Winner(director, 'winner', COTIDIAN_FUNCTION_SCENE) for buttom in self.common_buttoms.itervalues(): buttom.is_visible = True self.c_fails = 0
class Sce_Functional_Group(Scene): ''' classdocs ''' def __init__(self, director, background_name): ''' Constructor ''' Scene.__init__(self, director, background_name) self.functional_group = Functional_Group() self.scene_winner = Sce_Winner(director, 'winner', COTIDIAN_FUNCTION_SCENE) for buttom in self.common_buttoms.itervalues(): buttom.is_visible = True self.c_fails = 0 def on_update(self): self.time = self.director.time self.update() if not self.is_failed: for key, option in self.functional_group.options_functions.iteritems(): if option.is_release: if option.rect.colliderect(self.functional_group.rect_grid[LBR]): if key == self.functional_group.current_type_key: option.move(self.functional_group.rect_grid[LBR].center) option.is_correct = True else: self.c_fails += 1 if self.c_fails >= 2: self.c_fails = 0 self.is_failed = True option.move_to_firts_pos() else: option.move_to_firts_pos() if option.is_pressed: if not option.is_correct: option.move(pygame.mouse.get_pos()) for key, option in self.functional_group.options_types.iteritems(): if option.is_release: if option.rect.colliderect(self.functional_group.rect_grid[RTR]): if key == self.functional_group.current_function_key: option.move(self.functional_group.rect_grid[RTR].center) option.is_correct = True else: option.move_to_firts_pos() else: option.move_to_firts_pos() if option.is_pressed: if not option.is_correct: option.move(pygame.mouse.get_pos()) self.is_complete = self.functional_group.check_complete() def on_event(self, event): self.event(event) if event.type == pygame.MOUSEBUTTONDOWN: mouse_pos = pygame.mouse.get_pos() for option in self.functional_group.options_functions.itervalues(): option.pressed(mouse_pos) for option in self.functional_group.options_types.itervalues(): option.pressed(mouse_pos) elif event.type == pygame.MOUSEBUTTONUP: for option in self.functional_group.options_functions.itervalues(): option.release() for option in self.functional_group.options_types.itervalues(): option.release() def on_draw(self, screen): self.draw(screen) self.functional_group.draw(screen) if self.is_failed: screen.blit(self.failed_img, self.failed_rect)