Как в genie сделать так чтобы кнопка не нажималась пока отжата другая.

Дата публикации:

Как в genie сделать так чтобы кнопка не нажималась пока отжата другая.


Как в genie сделать так чтобы кнопка не нажималась пока отжата другая.

В genie можно реализовать невозможность нажатия одной кнопки, пока другая отжата, используя переменные состояния и условные операторы.

Вот пример кода на genie, который демонстрирует такую реализацию:

init
    // Объявляем переменные состояния для каждой кнопки
    var button1_pressed = false
    var button2_pressed = false
    var button3_pressed = false

    // Обработчики событий нажатия и отжатия кнопок
    button1.pressed.connect(on_button1_pressed)
    button1.released.connect(on_button1_released)

    button2.pressed.connect(on_button2_pressed)
    button2.released.connect(on_button2_released)

    button3.pressed.connect(on_button3_pressed)
    button3.released.connect(on_button3_released)

method on_button1_pressed()
    // Проверяем состояние других кнопок
    if not button2_pressed and not button3_pressed
        // Если другие кнопки не нажаты, разрешаем нажатие текущей кнопки
        button1_pressed = true

method on_button1_released()
    // Сбрасываем состояние текущей кнопки
    button1_pressed = false

method on_button2_pressed()
    // Проверяем состояние других кнопок
    if not button1_pressed and not button3_pressed
        // Если другие кнопки не нажаты, разрешаем нажатие текущей кнопки
        button2_pressed = true

method on_button2_released()
    // Сбрасываем состояние текущей кнопки
    button2_pressed = false

method on_button3_pressed()
    // Проверяем состояние других кнопок
    if not button1_pressed and not button2_pressed
        // Если другие кнопки не нажаты, разрешаем нажатие текущей кнопки
        button3_pressed = true

method on_button3_released()
    // Сбрасываем состояние текущей кнопки
    button3_pressed = false

В этом примере каждая кнопка имеет свою переменную состояния, которая указывает, нажата ли кнопка или нет. При нажатии каждой кнопки проверяется состояние других кнопок. Если ни одна из других кнопок не нажата, то разрешается нажатие текущей кнопки. При отжатии кнопки ее состояние сбрасывается.

Таким образом, в данном примере невозможно нажать одну кнопку, пока другая кнопка не отжата.