AI-Project/survival/game/user_interface.py
2021-06-21 12:20:25 +02:00

48 lines
1.8 KiB
Python

import pygame.font
from survival.ai.genetic_algorithm import GeneticAlgorithm
from survival.settings import MUTATE_NETWORKS, SCREEN_HEIGHT, SCREEN_WIDTH
from survival.components.inventory_component import InventoryComponent
from survival.generators.resource_type import ResourceType
from survival.game.image import Image
class UserInterface:
def __init__(self, window):
self.width = SCREEN_WIDTH
self.height = SCREEN_HEIGHT
self.window = window
self.pos = (self.width - 240, 50)
self.scale = 2
self.inventory: InventoryComponent = None
self.images = {
ResourceType.FOOD: Image('apple.png', self.pos, self.scale),
ResourceType.WATER: Image('water.png', self.pos, self.scale),
ResourceType.WOOD: Image('wood.png', self.pos, self.scale)
}
i = 0
for key, value in self.images.items():
self.images[key].pos = (self.pos[0] + i * 32 * self.scale + 8 * i, self.pos[1])
i += 1
self.slot_image = Image('ui.png', self.pos, scale=2)
self.font = pygame.font.SysFont('Comic Sans MS', 20)
self.initialized = False
def load_inventory(self, inventory: InventoryComponent):
self.inventory = inventory
self.initialized = True
def update(self):
pass
def draw(self):
for key, image in self.images.items():
items_count = self.inventory.items[key] if self.inventory.has_item(key) else 0
self.slot_image.pos = image.pos
self.slot_image.draw_static(self.window)
image.draw_static(self.window)
textsurface = self.font.render(str(items_count), False, (255, 255, 255))
self.window.blit(textsurface, (image.pos[0] + 48, image.pos[1] + 36))