Найти - Пользователи
Полная версия: Не получается создать главное меню
Начало » Python для новичков » Не получается создать главное меню
1
KasumiKudo
Код запускается и сразу закрывается. Прошу, помогите

 import pygame
pygame.init()
screen = pygame.display.set_mode((800, 600))
x = 50
y = 50
width = 40
height = 60
speed = 5
ARIAL_50 = pygame.font.SysFont('arial', 50)
class Menu():
    def __init__(self):
        self._option_surfaces = []
        self._callbacks = []
        self.current_option_index = 0
    def append_option(self, option, callback):
        self._option_surfaces.append(ARIAL_50.render(option, True, (255, 255, 255)))
        self._callbacks.append(callback)
    def switch(self, direction):
        self._current_option_index = max(0, min(self.current_option_index + direction, len(self._option_surfaces) - 1 ))
    def select(self):
        self._callbacks[self._current_option_index]()
    def draw(self, surf, x, y, option_y_padding):
        for i, option in enumerate(self._option_surfaces):
            option_rect = option.get_rect()
            option_rect.topleft = (x, y + i * option_y_padding)
            if i == self._current_option_index:
                pygame.draw.rect(surf, (0, 100, 0), option_rect)
            surf.blit(option, option_rect)
menu = Menu()
menu.append_option('Play', lambda : print('pass'))
menu.append_option('Quit', quit())
run = True
while run:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
    pygame.display.update()
pygame.quit()
ZerG
запусти в консоли и посмотри что пишет
  python script_name.py

https://www.youtube.com/watch?v=DudNvBklG6w&t=86s
KasumiKudo
ZerG
python script_name.py
Traceback (most recent call last):
File “C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\code.py”, line 63, in runsource
code = self.compile(source, filename, symbol)
File “C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\codeop.py”, line 153, in __call__
return _maybe_compile(self.compiler, source, filename, symbol)
File “C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\codeop.py”, line 73, in _maybe_compile
return compiler(source, filename, symbol)
File “C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\codeop.py”, line 118, in __call__
codeob = compile(source, filename, symbol, self.flags, True)
File “<input>”, line 1
python script_name.py
^^^^^^^^^^^
SyntaxError: invalid syntax

Что это такое? Я плачу(
ZerG
открываешь термиал CMD
переходишь в папку где лежит твой файл с кодом
пишешь
python имя_твоего_файла.py

https://www.youtube.com/watch?v=DudNvBklG6w&t=86s
KasumiKudo
ZerG
открываешь термиал CMD переходишь в папку где лежит твой файл с кодомпишешь python имя_твоего_файла.pyhttps://www.youtube.com/watch?v=DudNvBklG6w&t=86s

C:\Game> python main.py
pygame 2.5.0 (SDL 2.28.0, Python 3.11.4)
Hello from the pygame community. https://www.pygame.org/contribute.html
Программа открывается и сразу закрывается
xam1816
KasumiKudo
Программа открывается и сразу закрывается
 menu.append_option('Play', lambda : print('pass'))
menu.append_option('Quit', quit())

в пункте quit сделай лямбду
KasumiKudo
xam1816
Теперь запускается, только черный экран
xam1816
KasumiKudo
Теперь запускается, только черный экран
так программы писать, это не гадать. Т.е нужно понимать каждую строчку что она выполняет.
ZerG
У тебя проблем много! Но начни с этой строки
 menu.append_option('Quit', quit())
Ты пытаешься передать метод которого у тебя не существует Quit()
а дальше уже смотри что ты там еще накосячил
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB