geom-demo/geom/screen.py

41 lines
1.1 KiB
Python
Raw Normal View History

2020-11-13 07:46:31 -07:00
import pygame
from .demos import aabb, vec_proj
from . import text, HEIGHT
from .colors import *
class Screen:
def __init__(self):
self.demos = [
vec_proj.VecProj(),
aabb.AABBDistance(),
aabb.PointAABBDistance(),
]
self.demo = 0
def handle_input(self):
for event in pygame.event.get(pygame.KEYDOWN):
if event.key == pygame.K_DOWN:
self.demo += 1
if self.demo >= len(self.demos):
self.demo = 0
elif event.key == pygame.K_UP:
self.demo -= 1
if self.demo < 0:
self.demo = len(self.demos) - 1
def draw_demo_list(self, surface):
y_offset = 10
for i in range(len(self.demos)):
text.draw(surface,
(10, y_offset + i * 20),
CYAN if self.demo == i else WHITE,
self.demos[i].title)
def render(self, surface):
self.handle_input()
self.demos[self.demo].render(surface)
self.draw_demo_list(surface)