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(): 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()
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 __init__(self, width, height, caption="Street Pirates Vs. Ninjas"): """ Constructor. @param self [Main] itself @param width [Int] width of the window @param height [Int] height of the window @param caption [String] caption of the window """ self.width = width self.height = height # pygame objects initialization pygame.init() icon = pygame.image.load("assets/Icone.png") pygame.display.set_icon(icon) self._soundManager = SoundManager() self._soundManager.playMenuMusic() self._fpsClock = pygame.time.Clock() self._window = pygame.display.set_mode((self.width, self.height), pygame.DOUBLEBUF) pygame.display.set_caption(caption) pygame.mouse.set_cursor(*pygame.cursors.tri_left) # game objects initialization self._scene = Scene([[100, 0, 0], [-100, 0, 0]], self) self._listener = EventListener(self._scene, self) self._startMenu = StartMenu(self) self._startMenu.drawSplashScreen() # just before loading self._screen = Screen(self._window, self._scene, self._startMenu) self._startMenu.draw() # main object properties initialization self.state = GameState.START_MENU self.loop = True
# 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())
class Main: """ Main class for the game. """ def __init__(self, width, height, caption="Street Pirates Vs. Ninjas"): """ Constructor. @param self [Main] itself @param width [Int] width of the window @param height [Int] height of the window @param caption [String] caption of the window """ self.width = width self.height = height # pygame objects initialization pygame.init() icon = pygame.image.load("assets/Icone.png") pygame.display.set_icon(icon) self._soundManager = SoundManager() self._soundManager.playMenuMusic() self._fpsClock = pygame.time.Clock() self._window = pygame.display.set_mode((self.width, self.height), pygame.DOUBLEBUF) pygame.display.set_caption(caption) pygame.mouse.set_cursor(*pygame.cursors.tri_left) # game objects initialization self._scene = Scene([[100, 0, 0], [-100, 0, 0]], self) self._listener = EventListener(self._scene, self) self._startMenu = StartMenu(self) self._startMenu.drawSplashScreen() # just before loading self._screen = Screen(self._window, self._scene, self._startMenu) self._startMenu.draw() # main object properties initialization self.state = GameState.START_MENU self.loop = True def start(self): """ Launches the main loop of the game. @param self [Main] itself """ # main loop while self.loop: if self.state == GameState.START_MENU: self._listener.listen() self._startMenu.draw() elif self.state == GameState.IN_GAME: self._listener.listen() self._screen.draw() self._fpsClock.tick(30) def stop(self): """ Definitely stop the main loop. @param self [Main] itself """ self.loop = False def changeState(self, state): self.state = state self._soundManager.stop() if state == GameState.IN_GAME: self._soundManager.playMusic("fightmusic")