Top.Mail.Ru
Ответы
Аватар пользователя
8мес
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+3

Можно ли, как-нибудь заменить вот такую конструкцию if на цикл for? Python

Вместо такой вот конструкции:

123456789
             if event.type == pygame.USEREVENT and event.button == sound_button: 
                cursor.cursor = cursor.no_hover_cursor 
                fade_in() 
                volume = settings_sound_memu(volume) 
 
            if event.type == pygame.USEREVENT and event.button == back_button: 
                cursor.cursor = cursor.no_hover_cursor 
                fade_in() 
                running = False 

На цикл for?:

вот у меня есть функция check_events():

1234567
 def check_events(*args): 
    """ Обработка игровых событий """ 
    for event in pygame.event.get(): 
        if event.type == pygame.QUIT: 
            server_work = False 
            pygame.quit() 
            sys.exit() 

Можно ли как-нибудь переделать верхний код в цикл for и добавить в эту функцию?

Типо вот такого:

12345678910111213
 def check_events(*args): 
    """ Обработка игровых событий """ 
    for event in pygame.event.get(): 
        if event.type == pygame.QUIT: 
            server_work = False 
            pygame.quit() 
            sys.exit()
    
    for button in args:
        if event.type == pygame.USEREVENT and event.button == button:
            # Функция для определенной кнопки, например settings() или exit() в зависимости от переданной кнопки

check_events(button_settings, button_exit) 
По дате
По рейтингу
Аватар пользователя
8мес

Цикл для "словаря" buttons? Или какой участок кода ты хочешь изменить? Объединение участков кода?

Ну, используешь цикл, чтобы пройтись по всем событиям, полученным с помощью pygame.event.get(), проверка на выход остается, проверка событий USEREVENT и вызов функции, проверка на кнопку с помощью вложенного условия.