Программирование игр Pygame #16: Игровое меню

preview_player
Показать описание
Приветствую вас в очередном видео по созданию компьютерных игр на языке Python с библиотекой Pygame! В этом видео мы ещё больше прокачаем нашу игру, а именно:

1. Слегка подправим прорисовку кнопок
2. Создадим игровое меню
3. Добавим в меню кнопки "Начать игру" и "Выйти из игры"

Все исходные файлы для игры:

Поделитесь с друзьями ссылкой на канал, чтобы они тоже узнали что-то новое для себя:

Если у Вас есть желание и возможность материально помочь каналу - вот ссылка на перевод на яндекс кошелек:
Спасибо!

Если у вас возникли какие-либо вопросы или появились предложения, то обязательно пишите их в комментариях. И не забудьте поставить лайк. Также делитесь этим видео с друзьями - пусть они узнают, что программировать игры - просто. С вами был канал Источник Знаний.
Спасибо за просмотр!
Рекомендации по теме
Комментарии
Автор

Возможно, позже это как-то будет исправлено в цикле видеоуроков, но пока предлагаю вынести сброс параметров (health, make_jump и т.д.) вынести в начало цикла game_cycle. Иначе при некоторых сценариях (например, после проигрыша → выход в меню через нажатие клавиши Escape → повторный запуск игры из меню) сброс параметров не происходит. А в функции start_game, полагаю, можно оставить:
while game_cycle():
pass

SergeyZoloto
Автор

Я надеюсь это не конец
else:
game over
Создателю крепкого здоровья и всего что он может пожелать себе сам!!!

gxgrpwh
Автор

помогите пж
у меня сразу не видно кнопки, только когда навожу на них

Denik-ciij
Автор

Спасибо за видео) А как написать код, который будет реализовывать создание нового окна при нажатии мышью?

hkcdjls
Автор

как только нажимаю старт гейм у меня фон меню, то пропадает, то появляется, а играть не возможно. Что делать?

coffeesum
Автор

При запуске игры — чёрный экран и никаких действий я не могу совершить. Вы случайно не знаете как это решается?

hasturiel
Автор

Здравствйте, мне нужна помощь. Создал кнопку, которая должна переходить из главного меню в саму игру(сам код игры еще не написал, просто должен поменятся фон).При нажатии этой кнопки программа просто зависает, фон не меняется. С чем связана эта проблемма и как ее решить? Подскажите, пожалуйста.

nazariishcherbak
Автор

Источник Знаний когда я нажимаю кнопку которая переходит в игру игра зависает и фон не меняется что делать?

mkbckqz
Автор

Здравствуйте, а не могли бы вы скинуть мне код с данного видео?

shelest
Автор

Привет, у меня проблема, помоги пожалуйста разобраться!
Я создал функцию для меню, сделал всё как надо, но почему-то меню не прорисовывается, а сразу же начинается игра. То есть когда я в action передаю None меню высвечивается, а когда передаю игровой цикл, то сразу запускается сама игра. Если надо, могу скинуть весь код, но вот та функция. Прости, отступных могут стоять не правельно.
def meny():
global flag
m =
flag = Button(172, 95)
while g:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
win.blit(m, (0, 0))
flag.draw(600, 300, 'Вход', play_cycle(), 50)
pygame.display.update()
clock.tick(60)

meny()

whitehat-it-
Автор

Здраствуйте, а можно ли меню сделать не в одном файле, а в отдельном? А позже просто файлы соединить. Если можно что-то с этим решить, то ниже весь код главного файла моей тестовой игры.

ТК. Я уже перепробовал множество способов добавления меню, ничего не работало, я хз или у меня с мозгами траблы, или ещё чт т..

Код главного файла:

import pygame, controls
from gun import Gun
from pygame.sprite import Group
from stats import Stats
from scores import Scores

def run():

pygame.init()
screen = pygame.display.set_mode((700, 800))

bg_color = (0, 0, 0)
background = Group()
gun = Gun(screen)
bullets = Group()
inos = Group()
controls.create_army(screen, inos)
stats = Stats()
sc = Scores(screen, stats)

while True:
controls.events(screen, gun, bullets)
if stats.run_game:
gun.update_gun()
controls.update(bg_color, screen, stats, sc, gun, inos, background, bullets)
controls.update_bullets(screen, stats, sc, inos, bullets)
controls.update_inos(stats, screen, sc, gun, inos, bullets)

run()

karagunis