Ejemplo n.º 1
0
    def draw_unit(self, u: Unit):
        if u.draw_stuff:
            rays = u.intersected if u.intersected else u.get_rays_world()
            for p1, p2 in rays:
                self.pygame.draw.aaline(self.screen_main, (220, 220, 220),
                                        self.to_pixels(p1), self.to_pixels(p2))
            if u.vis_line:
                self.pygame.draw.aaline(self.screen_main, (255, 50, 50),
                                        self.to_pixels(u.pos),
                                        self.to_pixels(u.vis_line + u.pos))

        self.pygame.draw.polygon(
            self.screen_main, u.color,
            [self.to_pixels(p) for p in u.polygon_world.vecs])

        hp_w = 30
        hp_h = 5
        t = u.hp / u.hp0
        x, y = self.to_pixels(u.pos)
        rr = self.pygame.Rect(x - 15, y - 20, hp_w, hp_h)
        rg = self.pygame.Rect(x - 15, y - 20, int(hp_w * t), hp_h)
        self.pygame.draw.rect(self.screen_main, (255, 0, 0), rr)
        self.pygame.draw.rect(self.screen_main, (0, 255, 0), rg)

        if not u.can_shoot:
            t2 = (u.time - u.time_last_shot) / u.shot_delta
            rr = self.pygame.Rect(x - 15, y - 15, int(hp_w * t2), 2)
            self.pygame.draw.rect(self.screen_main, (150, 150, 150), rr)
Ejemplo n.º 2
0
 def add_ray_signals(self, unit: Unit, signals: dict):
     rays = unit.get_rays_world()
     unit.intersected = [
         self.scene.intersected_segment(p1, p2) for p1, p2 in rays
     ]
     # signals['rays_max'] = [(p1-p2).len() for p1, p2 in rays],
     signals['rays_intersected'] = [(p1 - p2).len()
                                    for p1, p2 in unit.intersected]