72 lines
2.4 KiB
Python
72 lines
2.4 KiB
Python
import pygame
|
|
from ..elements import sprites
|
|
from ..io.input_handler import InputHandler
|
|
|
|
|
|
class Surface(pygame.Surface):
|
|
"""
|
|
|
|
"""
|
|
def __init__(self, window_size, resources_dir, game_fps, **kwargs):
|
|
"""
|
|
|
|
Args:
|
|
window_size:
|
|
resources_dir:
|
|
game_fps:
|
|
**kwargs:
|
|
"""
|
|
super().__init__(window_size, pygame.SRCALPHA)
|
|
self.name = 'selection_info'
|
|
self.running = True
|
|
self.next_surface = None
|
|
self.resource_dir = resources_dir
|
|
self.clock = pygame.time.Clock()
|
|
self.game_fps = game_fps
|
|
self.input_handler = InputHandler(self.clock)
|
|
self.additional_args = {}
|
|
|
|
self.bg = pygame.image.load(self.resource_dir + '/images/bg.png').convert_alpha()
|
|
self.sprites = pygame.sprite.Group()
|
|
|
|
self.selected_egg = None
|
|
for key in kwargs.keys():
|
|
if key == 'selected_egg':
|
|
self.selected_egg = kwargs.get(key)
|
|
|
|
egg = sprites.SelectionEgg(self.selected_egg, resources_dir)
|
|
egg.rect.x = 8
|
|
egg.rect.y = 3
|
|
self.sprites.add(egg)
|
|
|
|
self.info_text = sprites.InfoText(resources_dir, window_size[0], egg.description)
|
|
self.info_icons = sprites.EggInfo(resources_dir, egg.contentedness, egg.metabolism, (32, 4))
|
|
|
|
def update(self):
|
|
self.clock.tick(self.game_fps)
|
|
|
|
self.blit(self.bg, (0, 0))
|
|
self.sprites.update()
|
|
self.sprites.draw(self)
|
|
self.info_text.draw(self)
|
|
self.info_icons.draw(self)
|
|
|
|
self.input_handler.update()
|
|
|
|
for event in pygame.event.get():
|
|
if event.type == pygame.KEYDOWN:
|
|
if event.key == pygame.K_DOWN:
|
|
# Scroll down on the info screen.
|
|
self.info_text.scroll_down()
|
|
if event.key == pygame.K_UP:
|
|
# Scroll up on the info screen.
|
|
self.info_text.scroll_up()
|
|
if event.key == pygame.K_a:
|
|
self.running = False
|
|
self.additional_args = {'selected_color': self.selected_egg}
|
|
self.next_surface = 'playground'
|
|
if event.key == pygame.K_b:
|
|
self.running = False
|
|
self.additional_args = {'selected_color': self.selected_egg}
|
|
self.next_surface = 'egg_select'
|