-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathstarfield_scanner.py
45 lines (37 loc) · 1.34 KB
/
starfield_scanner.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
""" Starfield scanner """
import pygame
import overlay
import stars
class StarfieldScanner:
"""Provides a grid and scanning reticle over a field of randomly generated stars"""
def __init__(self, width, height, displaySurface):
self.rendering = True
self._display_surf = displaySurface
self.overlay = overlay.Overlay(width, height)
self.stars = stars.Stars(width, height)
self.now = 0
self.regenerate_stars_trigger = 1
def draw_overlay(self):
""" Draws the overlay """
self.overlay.draw(self._display_surf)
def draw_starfield(self):
""" Draws the starfield """
self.stars.draw(self._display_surf)
def on_loop(self, update_time):
""" Update loop """
self.now += update_time
if self.now >= self.regenerate_stars_trigger:
self.stars.update_starfield()
self.now -= self.regenerate_stars_trigger
self.overlay.on_loop(update_time)
def on_render(self):
""" Render event """
self._display_surf.fill((0, 0, 0))
self.draw_starfield()
self.draw_overlay()
pygame.display.update()
def key_press(self, event):
""" user input test """
if event.type == pygame.KEYUP:
if event.key == pygame.K_SPACE:
self.stars.update_starfield()