def main(): pygame.mixer.Channel(0).set_volume(0.1) pygame.mixer.Channel(1).set_volume(0.2) pygame.mixer.Channel(2).set_volume(0) pygame.mixer.Channel(3).set_volume(0.3) pygame.mixer.Channel(4).set_volume(0) pygame.mouse.set_visible(False) # Запускаем главное меню StartMenu(screen) # Загружаем игру, когда главное меню закрылось level = MainMap('world.tmx', MapLoader()) level.player.health = 100 level.player.temperature = 100 level.player.wood = 2 # Панели состояния игрока heath_hud = HealthHUD(level.player) inv_hud = InventoryHUD(level.player) # Открываем окно с правилами level.text_window.open() pygame.mixer.Channel(0).set_volume(0.2) clock = pygame.time.Clock() running = True while running: start = time.time() # Если здоровье падает до нуля открываем окно game_over if level.player.health <= 0: level.game_over(screen) return True for event in pygame.event.get(): if event.type == pygame.QUIT: return False # Нажатие на клетку if event.type == pygame.MOUSEBUTTONDOWN: if event.button == 1: level.click_listener(event.pos) # Отрисовка элементов level.update(screen) heath_hud.render(screen) inv_hud.render(screen) screen.blit(compass, (SCREEN_WIDTH - compass.get_width(), SCREEN_HEIGHT - compass.get_height())) # Убираем курсор если окно не в фокусе if pygame.mouse.get_focused(): screen.blit(pointer, (pygame.mouse.get_pos())) pygame.display.update() framerate = 1 / (time.time() - start) clock.tick(FPS)
def start_menu(): global closed if closed: return # функция для создания, отрисовки стартового меню screen = StartMenu() game = True res = -1 # переменная, возвращающая состояние экрана while not transition.get_transition(): # отображение перехода между меню for event in pygame.event.get(): if event.type == pygame.QUIT: closed = True return transition.render() pygame.display.flip() clock.tick(fps) screen.render() while game: for event in pygame.event.get(): if event.type == pygame.QUIT: game = False closed = True if event.type == pygame.KEYDOWN: keys = pygame.key.get_pressed() if keys[pygame.K_SPACE] or keys[ pygame.K_RETURN]: # переход в меню выбора карт screen.result = 1 pygame.mixer.music.stop() if transition.get_transition(): # отображение перехода между меню if not transition.background: # сохранение изображения на экране для быстрой отрисовки pygame.image.save(display, 'image/background_for_load.png') transition.background = load_image('background_for_load.png') transition.render() else: screen.render() pygame.display.flip() clock.tick(fps) res = screen.get_result() if res != -1: game = False if res == 1: frame = transition.get_frame() # смена состояния перехода if frame != 35 and frame != -1: transition.reverse() transition.background = None select_map()
def start_menu(): screen = StartMenu() game = True while game: for event in pygame.event.get(): if event.type == pygame.QUIT: game = False screen.draw() pygame.display.flip() clock.tick(30) res = screen.get_result() if res != -1: game = False if res == 1: select_chr()
# importing libraries import sys sys.path.append("./menu/") from random import randint from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import * from StartMenu import StartMenu from LivingRoom import LivingRoom from Room import Room if __name__ == '__main__': # create pyqt5 app App = QApplication(sys.argv) # create the instance of our Window menu = StartMenu() menu.show() #game = LivingRoom() #game.show() # start the app sys.exit(App.exec())