Ввод обработчиков событий
В следующем упражнении вам предстоит ввести обработчики событий для создания Солнца и планет.
1. Введите следующий фрагмент кода перед последней закрывающей скобкой в выражении свитка:
on but_createSun pressed do
(
)
on but_createSun rightclick do
(
)
В этом коде создаются два обработчика событий для кнопки Create Sun. Если щелкнуть на ней левой кнопкой мыши, в сценарии должна быть создана сфера радиусом, определяемым параметром SunRadius. Если же щелкнуть на ней правой кнопкой мыши, в сценарии на этот раз должна быть создана геосфера.
Построение пользовательских интерфейсов
2. Введите внутри обработчика событий pressed следующую строку кода:
sun = sphere radius: spn_sunRadius.value
Теперь данный обработчик событий должен иметь следующий вид:
on but_createSun pressed do
(
sun = sphere radius: spn_sunRadius.value
)
Значение переменной spn_sunRadius хранится в ее свойстве .value. Выражение spn_sunRadius. value возвращает любое значение, находящееся в поле редактирования счетчика SunRadius в момент нажатия кнопки CreateSun.
3. Введите внутри обработчика событий rightclick следующий фрагмент кода:
on but_createSun rightclick do
(
sun = geosphere radius: spn_sunRadius.value
)
4. Вычислите код сценария.
5. Измените значение параметра SunRadius в открывшемся диалоговом окне, введя в его поле число, большее нуля, а затем щелкните левой кнопкой мыши на кнопке CreateSun. В сцене будет создана сфера с указанным радиусом. Переместите сферу по сцене и попробуйте щелкнуть правой кнопкой мыши, чтобы создать геосферу. Если сценарий не позволяет этого сделать, проанализируйте его код в приемнике команд, выявите ошибку и исправьте ее, прежде чем продолжить работу над данным сценарием.
6. Создайте обработчик событий для формирования планет и их орбит. Для этого введите следующий фрагмент кода после только что введенного кода обработчика событий:
on but_createPlanets pressed do
(
for i = 1 to spn_numPlanets.value do
(
-- Создание планеты
planet = sphere() -- Создать планету
-- Установить радиус планеты в виде случайного числа
-- в пределах от 10 до 30
planet.radius = random 10.0 30.0
-- Создать окружность для орбиты планеты
orbit = circle radius:(i*10)
-- Поместить планету на орбиту
planet.pos.controller = Path_Constraint()
planet.pos.controller.path = orbit
-- Повернуть орбиту, чтобы она заняла произвольное
-- исходное положение
orbit.rotation.z_rotation = random 0.0 360.0
)
)
Глаза 2
Этот обработчик событий создает ряд указанных планет с произвольной орбитой в виде окружности и ограничивает их движение по кругу с помощью ограничения по линии пути. И наконец, он поворачивает орбиту каждой планеты на случайную величину, чтобы исходное положение орбит было разным.
7. Вычислите код сценария.
Установите значение 3 в поле счетчика Number of Planets (Число планет) и щелкните на кнопке Create Planets.
Вокруг Солнца будут созданы две планеты со своими орбитами.