Привет! Меня зовут Алексей‚ и сегодня я хочу рассказать тебе о том‚ как создать два окна на PyGame. Конкретно‚ мы будем делать игру‚ в которой будет первое окно меню с кнопками ″Старт″ и ″Выход″‚ а второе окно с игрой‚ где главный персонаж будет собирать предметы. Когда мы нажмем кнопку ″Старт″ в первом окне‚ должно открыться второе окно‚ где будем происходить игра. Давай начнем!Для начала‚ убедись‚ что у тебя установлена библиотека PyGame. Если она еще не установлена‚ то открой командную строку и введи команду ″pip install pygame″ для ее установки.После того‚ как библиотека установлена‚ создадим новый файл и импортируем необходимые модули⁚
python
import pygame
import sys
Затем‚ создадим две функции⁚ одну для первого окна с меню‚ и вторую для второго окна с игрой. В первой функции мы будем отображать кнопки и обрабатывать их нажатия‚ а во второй функции мы будем реализовывать игровой процесс.python
def menu_screen⁚
global running
while running⁚
for event in pygame.event.get⁚
if event.type pygame.QUIT⁚
pygame.quit
sys.exit
# Отображаем кнопки
pygame.display.update
def game_screen⁚
global running
while running⁚
for event in pygame.event.get⁚
if event.type pygame.QUIT⁚
pygame.quit
sys.exit
# Реализуем игровой процесс
pygame.display.update
В функции `menu_screen` мы используем бесконечный цикл‚ чтобы окно с меню отображалось до тех пор‚ пока мы не закроем его; Внутри цикла‚ мы проверяем события и обрабатываем нажатие на кнопки. Пока что кнопки ничего не делают‚ но мы вернемся к этому позже.Переключение между экранами будем осуществлять с помощью глобальной переменной `running`. Если `running` равно `True`‚ то отображается первое окно‚ если `False` ⎯ второе. Для начала‚ установим `running` в значение `True` в самом начале программы.python
running True
Теперь нам нужно создать само окно и отображать на нем кнопки. Для этого добавим следующий код в функцию `menu_screen`⁚
python
# Создание окна
pygame.init
window_width 800
window_height 600
screen pygame.display.set_mode((window_width‚ window_height))
pygame.display.set_caption(″Меню″)
# Отрисовка кнопок
font pygame.font.Font(None‚ 36)
start_button pygame.Rect(window_width/2-100‚ window_height/2-50‚ 200‚ 50)
exit_button pygame.Rect(window_width/2-100‚ window_height/2 50‚ 200‚ 50)
while running⁚
for event in pygame.event.get⁚
if event.type pygame.QUIT⁚
pygame.quit
sys.exit
if event.type pygame.MOUSEBUTTONDOWN⁚
mouse_position pygame.mouse.get_pos
if start_button.collidepoint(mouse_position)⁚
running False
if exit_button.collidepoint(mouse_position)⁚
pygame.quit
sys.exit
# Отображение кнопок
pygame.draw.rect(screen‚ (0‚ 255‚ 0)‚ start_button)
pygame.draw.rect(screen‚ (255‚ 0‚ 0)‚ exit_button)
start_text font.render(″Старт″‚ True‚ (0‚ 0‚ 0))
exit_text font.render(″Выход″‚ True‚ (0‚ 0‚ 0))
screen.blit(start_text‚ (window_width/2-40‚ window_height/2-40))
screen.blit(exit_text‚ (window_width/2-35‚ window_height/2 60))
pygame.display.update
В этом коде мы создаем окно размером 800×600 пикселей и устанавливаем название окна на ″Меню″. Затем мы создаем две прямоугольные кнопки `start_button` и `exit_button` с помощью функции `pygame.Rect`. В бесконечном цикле‚ мы проверяем события‚ и если происходит нажатие мыши на кнопки‚ мы изменяем значение переменной `running`. Если нажата кнопка ″Старт″‚ то `running` становится равным `False`‚ и мы переходим к игре‚ а если нажата кнопка ″Выход″‚ то программа закрывается.Теперь у нас есть два окна⁚ первое с меню и второе с игрой. Осталось только реализовать саму игру в функции `game_screen`.python
def game_screen⁚
global running
while running⁚
for event in pygame.event.get⁚
if event.type pygame.QUIT⁚
pygame.quit
sys.exit
# Реализуем игровой процесс
# ... pygame.display.update
В этом коде мы также используем бесконечный цикл для отображения игрового окна. Вместо комментария `″Реализуем игровой процесс″`‚ ты можешь добавить свою логику игры‚ создать спрайты и обработку их движения и столкновений.
Вот и все! Мы создали два окна на PyGame⁚ первое окно меню с кнопками ″Старт″ и ″Выход″‚ и второе окно с игрой. При нажатии на кнопку ″Старт″ мы переходим во второе окно‚ где происходит игра. Ты можешь дополнить код и добавить свои идеи‚ чтобы сделать игру еще интереснее! Удачи!