diff --git a/resources/graphics/laser_beam_horisontal.png b/resources/graphics/laser_beam_horisontal.png new file mode 100644 index 0000000..8d20780 Binary files /dev/null and b/resources/graphics/laser_beam_horisontal.png differ diff --git a/resources/graphics/laser_beam_vertical.png b/resources/graphics/laser_beam_vertical.png new file mode 100644 index 0000000..08a8d81 Binary files /dev/null and b/resources/graphics/laser_beam_vertical.png differ diff --git a/robotgame/laser.py b/robotgame/laser.py index cc68f85..c02a8aa 100644 --- a/robotgame/laser.py +++ b/robotgame/laser.py @@ -66,18 +66,23 @@ class Laser(worldobject.WorldObject): self.start_dark = 0 + self.surf = pygame.Surface(self.level.game.window.get_size(), + pygame.SRCALPHA) + def update(self, e, t, dt): self.start_dark = (t % 200) / 100 worldobject.WorldObject.update(self, e, t, dt) def draw(self, window): + self.surf.fill((0, 0, 0, 0)) + colors = [(155, 0, 0), (255, 0, 0)] c = self.start_dark if self.x0d != self.x1d: length = self.x1d - self.x0d for i in range(0, length, 8): x0d = self.x0d + i - pygame.draw.line(window, colors[c], + pygame.draw.line(self.surf, colors[c], (x0d - self.level.camera_x, self.y0d - self.level.camera_y), (x0d + min(8, length - i) - self.level.camera_x, @@ -87,10 +92,11 @@ class Laser(worldobject.WorldObject): length = self.y1d - self.y0d for i in range(0, length, 8): y0d = self.y0d + i - pygame.draw.line(window, colors[c], + pygame.draw.line(self.surf, colors[c], (self.x0d - self.level.camera_x, y0d - self.level.camera_y), (self.x0d - self.level.camera_x, y0d + min(8, length - i) - self.level.camera_y), 2) c ^= 1 - + + window.blit(self.surf, (0, 0))