Ввод обработчиков событий

В следующем упражнении вам предстоит ввести обработчики событий для создания Солнца и планет.

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.

Вокруг Солнца будут созданы две планеты со своими орбитами.