def loop(self): while self._continue_flag is True: self.canvas.fill(self.BACKGROUND_COLOR) for obstacle in self.obstacles: obstacle.draw(self.ray_canvas) if not self._drawing_mode_flag: self.source.draw(self.ray_canvas, self.canvas, self.obstacles, self.width, self.height, self.minuature_width, self.minuature_height) else: self.source.preview(self.ray_canvas, Point2D.from_tuple(self.mouse_pos) / 4) if self._drawing_obstacle_flag: Obstacle.preview(self.ray_canvas, self.starting_edge_of_obstacle, Point2D.from_tuple(self.mouse_pos) / 4) self.canvas.blit(self.ray_canvas, (0, 0)) self.ray_canvas.fill(self.BACKGROUND_COLOR) self.handle_events() self.clock.tick(self.fps) pygame.display.flip()