def onMouseMotion(self, event): p = DemoGame.camera_to_world(event.pos) if self.use_quadtree_collision: r = (p[0], p[1], 8, 8) current_hits = self.quadtree_visualizer.quadtree.hit(r) else: r = pygame.Rect(p[0], p[1], 8, 8) current_hits = [] indexes = r.collidelistall([pygame.Rect(r[0], r[1], r[2], r[3]) for r in self.items]) for index in indexes: current_hits.append(self.items[index]) for rect in self.last_hits: rect.color = 255, 255, 255 for rect in current_hits: rect.color = 0, 255, 0 self.last_hits = current_hits
def onMouseDown(self, event): if event.button is 1: p = DemoGame.camera_to_world(event.pos) d = 2 ** random.randint(1,5) self.quadtree.insert(RectComponent(p[0], p[1], d, d))
self.use_quadtree_collision = not self.use_quadtree_collision if self.use_quadtree_collision: print 'Using QuadTree Collision Detection' else: print 'Using PyGame Rect Collision' def onMouseMotion(self, event): p = DemoGame.camera_to_world(event.pos) if self.use_quadtree_collision: r = (p[0], p[1], 8, 8) current_hits = self.quadtree_visualizer.quadtree.hit(r) else: r = pygame.Rect(p[0], p[1], 8, 8) current_hits = [] indexes = r.collidelistall([pygame.Rect(r[0], r[1], r[2], r[3]) for r in self.items]) for index in indexes: current_hits.append(self.items[index]) for rect in self.last_hits: rect.color = 255, 255, 255 for rect in current_hits: rect.color = 0, 255, 0 self.last_hits = current_hits game = DemoGame((512, 512), NewScene) game.run()
def onMouseMotion(self, event): p = DemoGame.camera_to_world(event.pos) r = (p[0], p[1], 1, 1) self.quadtree_visualizer.quadtree = QuadTree([r], (0, 0, 512, 512))