Exemple #1
0
 def set_resolution(width, height):
     Config.set_resolution(width, height)
     SaveManager.set_entry('preferences', 'resolution', [width, height])
     GUI.clear()
     MainMenuGUI.init()
     MainMenuGUI.remove_buttons()
     SettingsGUI.init()
Exemple #2
0
 def update(self, *args):
     self.gui_obj.pos = Config.get_width() // 2, Config.get_height() - 100
     if self._collider is not None and self._player_collider is not None:
         if self._collider.detect_collision(self._player_collider):
             if not self._button_shown:
                 GUI.add_element(self.gui_obj)
                 self._button_shown = True
         else:
             if self._button_shown:
                 GUI.del_element(self.gui_obj.name)
                 self._button_shown = False
Exemple #3
0
 def add_buttons():
     GUI.add_element(
         MedievalButton(
             (Config.get_width() // 2, Config.get_height() // 2 + 180),
             'Connect', 29, 'connect_with_server',
             lambda: Myultyplayer.connect_with_server(
                 GUI.get_element('user_login').text,
                 GUI.get_element('server`s_ip').text)))
     GUI.add_element(
         MedievalButton(
             (Config.get_width() // 2, Config.get_height() // 2 + 280),
             'Close', 29, 'close_myultyplayer', Myultyplayer.exit))
Exemple #4
0
    def create_menu():
        GUI.get_element('game_menu').func = GameGUI.pause_menu_clear

        GUI.add_element(
            Image((Config.get_width() // 2, Config.get_height() // 2),
                  load_image("images/game_menu_gui/menu.png"), 'background'))
        GameGUI.pause_menu_elements.add('background')

        GUI.add_element(
            MedievalButton(
                (Config.get_width() // 2, Config.get_height() // 2 - 50),
                'Resume', 35, 'resume', GameGUI.pause_menu_clear))
        GameGUI.pause_menu_elements.add('resume')

        GUI.add_element(
            MedievalButton(
                (Config.get_width() // 2, Config.get_height() // 2 + 20),
                'Exit in menu', 33, 'exit', GameGUI.exit_in_menu))
        GameGUI.pause_menu_elements.add('exit')

        GUI.add_element(
            MedievalButton(
                (Config.get_width() // 2, Config.get_height() // 2 + 90),
                'Exit in desktop', 29, 'exit_in_desktop', MainMenuGUI.exit))
        GameGUI.pause_menu_elements.add('exit_in_desktop')
Exemple #5
0
    def set_camera_pos(self):
        cam = SceneManager.current_scene.current_camera
        x, y = self.game_object.transform.coord

        if abs(x) < 1024 - Config.get_width() // 2:
            cam.transform.move_to(x, cam.transform.y)
        else:
            cam.transform.move_to(copysign(1024 - Config.get_width() // 2, x),
                                  cam.transform.y)

        if abs(y) < 1024 - Config.get_height() // 2:
            cam.transform.move_to(cam.transform.x, y)
        else:
            cam.transform.move_to(cam.transform.x,
                                  copysign(1024 - Config.get_height() // 2, y))
Exemple #6
0
 def update(self):
     for element in self.elements:
         element['element'].move(*element['step'])
         if element['element'].get_pos()[0] > Config.get_width() or element['element'].get_pos()[1] > Config.get_width() \
                 or element['element'].get_pos()[0] + element['element'].size[0] < 0 \
                 or element['element'].get_pos()[1] + element['element'].size[1] < 0:
             element['element'].set_const_pos()
Exemple #7
0
    def draw(self, game_objects):
        for game_object in game_objects:
            if game_object.has_component(ImageComponent):
                transform = game_object.transform
                cam_transform = self.transform

                surface = game_object.get_component(ImageComponent).image

                obj_x, obj_y = transform.coord
                x, y = cam_transform.coord

                rect = surface.get_rect(
                    centerx=Config.get_width() // 2 + obj_x - x,
                    centery=Config.get_height() // 2 + y - obj_y
                )

                self.surface.blit(surface, rect)
Exemple #8
0
 def generate_clouds(n_clouds, clouds_controller):
     for _ in range(n_clouds):
         x, y = randint(-100, 700), randint(0, Config.get_height())
         i = str(randint(1, 7))
         clouds_controller.add_element(
             Image((x, y),
                   load_image('images/clouds/cloud{}.png'.format(i)),
                   'cloud{}'.format(i)))
Exemple #9
0
    def add_move_buttons():
        x = 230
        y = 280

        GUI.add_element(
            Label(
                (Config.get_width() // 2 - x,
                 Config.get_height() // 2 - y + 75), 32, 'Change control keys',
                pygame.Color('white'), 'fonts/Dot.ttf', 'lbl_change_keys'))

        GUI.add_element(
            MedievalButton(
                (Config.get_width() // 2 - x,
                 Config.get_height() // 2 - y + 75 * 2),
                'Move up: {}'.format(
                    pygame.key.name(SaveManager.get_entry('preferences',
                                                          'up'))), 29,
                'btn_mvup', SettingsGUI.change_button, 'up'))

        GUI.add_element(
            MedievalButton(
                (Config.get_width() // 2 - x,
                 Config.get_height() // 2 - y + 75 * 3),
                'Move down: {}'.format(
                    pygame.key.name(
                        SaveManager.get_entry('preferences', 'down'))), 29,
                'btn_mvdown', SettingsGUI.change_button, 'down'))

        GUI.add_element(
            MedievalButton(
                (Config.get_width() // 2 - x,
                 Config.get_height() // 2 - y + 75 * 4),
                'Move left: {}'.format(
                    pygame.key.name(
                        SaveManager.get_entry('preferences', 'left'))), 29,
                'btn_mvleft', SettingsGUI.change_button, 'left'))

        GUI.add_element(
            MedievalButton(
                (Config.get_width() // 2 - x,
                 Config.get_height() // 2 - y + 75 * 5),
                'Move right: {}'.format(
                    pygame.key.name(
                        SaveManager.get_entry('preferences', 'right'))), 29,
                'btn_mvright', SettingsGUI.change_button, 'right'))
Exemple #10
0
 def update(self, *args):
     container = self.game_object.get_component(ChatContainer)
     for msg in self.client.received.readlines():
         container.add(': '.join(self.parse(msg)))
     for event in InputManager.get_events():
         if event.type == pygame.KEYDOWN:
             if event.key == pygame.K_RETURN:
                 if not self.on_screen:
                     GUI.add_element(
                         TextBox((Config.get_width() // 8 + 10,
                                  Config.get_height() - 40,
                                  Config.get_width() // 4, 40),
                                 '',
                                 callback=self.client.send,
                                 name='message_textbox'))
                     self.on_screen = True
             elif event.key == pygame.K_ESCAPE:
                 if self.on_screen:
                     GUI.del_element('message_textbox')
                     self.on_screen = False
Exemple #11
0
 def add_element(self, element):
     if randint(0, 1):
         self.elements.append({
             'element':
             element,
             'step': (-self.change_pos[0], self.change_pos[1])
         })
         element.const_rect.x = Config.get_width()
     else:
         self.elements.append({
             'element':
             element,
             'step': (self.change_pos[0], self.change_pos[1])
         })
Exemple #12
0
    def add_buttons():
        GUI.add_element(
            MedievalButton((Config.get_width() // 2, Config.get_height() // 2),
                           'Start game', 35, 'start_game',
                           MainMenuGUI.start_game))

        GUI.add_element(
            MedievalButton(
                (Config.get_width() // 2, Config.get_height() // 2 + 75),
                'Multiplayer', 35, 'myultyplayer', Myultyplayer.init))

        GUI.add_element(
            MedievalButton(
                (Config.get_width() // 2, Config.get_height() // 2 + 150),
                'Settings', 35, 'settings', MainMenuGUI.load_settings))

        GUI.add_element(
            MedievalButton(
                (Config.get_width() // 2, Config.get_height() // 2 + 225),
                'Exit', 35, 'exit', MainMenuGUI.exit))
Exemple #13
0
    def add(self, message):
        if len(self.container) >= 5:
            GUI.del_element(self.container[0][0])
            self.container.pop(0)

        for i in range(5):
            name = 'message' + str(i)
            try:
                if name not in list(zip(*self.container))[0]:
                    break
            except IndexError:
                break

        self.container.append(
            (name,
             GUI.add_element(
                 Label((200, Config.get_height() - 80), 32, message,
                       pygame.Color('black'), 'fonts/Dot.ttf', name))))

        for name, label in self.container:
            label.pos[1] -= 50
Exemple #14
0
    def init():
        MainMenuGUI.remove_buttons()

        GUI.add_element(
            TextBox((Config.get_width() // 2, Config.get_height() // 2,
                     Config.get_height() // 2 + 100, 40),
                    '',
                    default_text='Login',
                    name='user_login'))
        GUI.add_element(
            TextBox((Config.get_width() // 2, Config.get_height() // 2 + 80,
                     Config.get_height() // 2 + 100, 40),
                    '',
                    default_text='Server`s IP address',
                    name='server`s_ip'))

        Myultyplayer.add_buttons()
Exemple #15
0
    def init():
        clouds_controller = CloudsController('Con', [1, 0])
        CloudsController.generate_clouds(15, clouds_controller)

        GUI.add_element(
            Image((Config.get_width() // 2, Config.get_height() // 2),
                  pygame.transform.scale(
                      load_image('images/main_menu/sky.png'),
                      (Config.get_width(), Config.get_height())), 'sky'))
        GUI.add_element(clouds_controller)

        GUI.add_element(
            Image((Config.get_width() // 2, 75),
                  load_image('images/main_menu/title_bg.png'), 'title'))
        GUI.add_element(
            Label((Config.get_width() // 2, 159), 53, 'Untitled game',
                  Color('white'), 'fonts/Dot.ttf', 'title_text'))

        MainMenuGUI.add_buttons()
Exemple #16
0
    def init():
        GUI.add_element(
            Image((Config.get_width() // 2, Config.get_height() // 2 + 40),
                  load_image('images/bg.png'), 'bg_img'))

        SettingsGUI.add_move_buttons()
        SettingsGUI.add_resolutions_buttons()

        GUI.add_element(
            MedievalCheckbox(
                'toggle_fullscreen', (Config.get_width() // 2 + 230,
                                      Config.get_height() // 2 + 230),
                'Toggle Fullscreen', 29,
                SaveManager.get_entry('preferences', 'fullscreen'),
                SettingsGUI.toggle_fullscreen))
        GUI.add_element(
            MedievalButton(
                (Config.get_width() // 2, Config.get_height() // 2 + 280),
                'Close', 29, 'close_settings', SettingsGUI.exit))
Exemple #17
0
    def add_resolutions_buttons():
        x = 230
        y = 280

        GUI.add_element(
            Label((Config.get_width() // 2 + x,
                   Config.get_height() // 2 - y + 75), 32,
                  'Set display resolution', pygame.Color('white'),
                  'fonts/Dot.ttf', 'lbl_set_resolution'))

        GUI.add_element(
            MedievalButton((Config.get_width() // 2 + x,
                            Config.get_height() // 2 - y + 75 * 2),
                           '1920x1080', 29, 'btn_res1080p',
                           SettingsGUI.set_resolution, 1920, 1080))

        GUI.add_element(
            MedievalButton((Config.get_width() // 2 + x,
                            Config.get_height() // 2 - y + 75 * 3), '1440x900',
                           29, 'btn_res_wxga+', SettingsGUI.set_resolution,
                           1440, 900))

        GUI.add_element(
            MedievalButton((Config.get_width() // 2 + x,
                            Config.get_height() // 2 - y + 75 * 4), '1366x768',
                           29, 'btn_res_wxga', SettingsGUI.set_resolution,
                           1366, 768))

        GUI.add_element(
            MedievalButton((Config.get_width() // 2 + x,
                            Config.get_height() // 2 - y + 75 * 5), '1280x720',
                           29, 'btn_res_720p', SettingsGUI.set_resolution,
                           1280, 720))

        GUI.add_element(
            MedievalButton((Config.get_width() // 2 + x,
                            Config.get_height() // 2 - y + 75 * 6), '1024x768',
                           29, 'btn_res_xga', SettingsGUI.set_resolution, 1024,
                           768))
Exemple #18
0
 def set_const_pos(self):
     self.const_rect.y = randint(0, Config.get_height() - self.size[1])
     self.rect = self.const_rect.copy()
Exemple #19
0
 def init():
     GUI.add_element(
         MedievalButton((Config.get_width() // 2, Config.get_height() - 35),
                        'Menu', 35, 'game_menu', GameGUI.create_menu))
Exemple #20
0
 def __init__(self, game_object):
     super().__init__(game_object)
     self.gui_obj = MedievalButton(
         (Config.get_width() // 2, Config.get_height() - 100),
         'Enter in house', 29, 'house', self.load_scene)
Exemple #21
0
 def __init__(self, game_object):
     super().__init__(game_object)
     self.gui_obj = MedievalButton(
         (Config.get_width() // 2, Config.get_height() - 100),
         'Enter the village', 25, 'enter_village', self.load_scene)
Exemple #22
0
 def toggle_fullscreen(value):
     SaveManager.set_entry('preferences', 'fullscreen', value)
     Config.set_fullscreen(value)
Exemple #23
0
from engine.initialize_engine import Config
from engine.scene_manager import SceneManager

import pygame
import sys

from engine.input_manager import InputManager
from engine.save_manager import SaveManager
from engine.gui import GUI

from user_components import NetworkingController, ChatController
from scene_loader import load_scene
from guis import MainMenuGUI

SaveManager.load_profile('preferences', 'user_prefs.json')
Config.set_resolution(*SaveManager.get_entry('preferences', 'resolution'))
Config.set_fullscreen(SaveManager.get_entry('preferences', 'fullscreen'))

GUI.set_cursor(SaveManager.get_entry('config', 'cursor'))

InputManager.set_axis('Horizontal', {
    SaveManager.get_entry('preferences', 'right'): 1,
    SaveManager.get_entry('preferences', 'left'): -1,
})

InputManager.set_axis('Vertical', {
    SaveManager.get_entry('preferences', 'up'): 1,
    SaveManager.get_entry('preferences', 'down'): -1,
})

load_scene('scenes/main_menu.json')