Урок 5
Немного об окнах
Каждое окно может только быть простым описанием его содержания. Но, оно также может иметь триггеры, связанные с ним, которые инициализируют данные, обновляют данные, и вычисляют данные перед закрытием окна.
Это означает, что мы можем иметь окно, содержание которого изменяется в то время как мы за ним наблюдаем! То есть, мы можем общаться с игроком, или показывать ему "живое" окно. А это означает, что мы можем делать небольшие игры в окне.
А пока давайте посмотрим, как мы можем обновить окно. Мы отрисуем анимацию маленького человечка.
Окно может иметь три триггера, связанные с ним:
- Startswitch
- Thinkswitch
- Finishswitch
Thinkswitch ответственен за постоянное обновление окна всё время, пока оно открыто. Он реагирует на измениние переменных, пользовательский ввод, и другие вещи. Основываясь на поступившие данные, он может изменить местоположения изображений в окне, или содержание его текста. Программисты, считайте что это - основной цикл кода.
Finishswitch ответственен за уборку - вы можете обнулить переменные, или наоборот, оставить их после того, как окно закроется.
Вместо того, чтобы ждать щелк мышкой, как в следующем примере, вы может вручную закрыть окно (и этим вызвать finishswitch автоматически) используя команду closewindow:
closewindow 2:1Самый легкий способ понимать эти команды - видеть их в действии. Здесь они анимируют маленького человечка. Запуск:
map test==> После того, как вы это проверите, переходите к уроку 6, где мы будем видеть, как мы можем двигаться этого человечка в стороны!
loadape Lesson5
invoke 2:1
//*****************************************************************************//вызывается, когда Вы щелкаете по окну
//DEFINES
//*****************************************************************************
#define $Lesson5 "2"
#define $Animation "1"
#define $Before "2"
#define $During "3"
#define $After "4"
//*****************************************************************************
//CODE
//*****************************************************************************
#window $Lesson5:$Animation
startswitch $Lesson5:$Before
thinkswitch $Lesson5:$During
finishswitch $Lesson5:$After
//-------------------------------------------------------
width 256
height 256
body "Haylo".
image pooper\Guy$counter$.pcx 10,30
//=======================================================
#switch $Lesson5:$Before
set counter = 0
return
//=======================================================
#switch $Lesson5:$During
set counter = counter + 1
if (counter > 3) set counter = 0
return
//=======================================================
#switch $Lesson5:$After
unset counter
return
Назад