Menu

Categories
Books [2]
Games [16]
Global [5]
I-News [1]
Links [0]
Media [1]
Software [1]
Warez [3]

Login form

Search

Poll
Какой жанр игр вы предпочитаете больше? // Which game genres do you prefer?
Всего ответов: 83

Statistics
Online: 1
Guests: 1
Users: 0


Your IP:
3.145.51.35
Your browser:


Other counters
Урок 5

Немного об окнах


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

Это означает, что мы можем иметь окно, содержание которого изменяется в то время как мы за ним наблюдаем! То есть, мы можем общаться с игроком, или показывать ему "живое" окно. А это означает, что мы можем делать небольшие игры в окне.

А пока давайте посмотрим, как мы можем обновить окно. Мы отрисуем анимацию маленького человечка.

Окно может иметь три триггера, связанные с ним:
  1. Startswitch
  2. Thinkswitch
  3. Finishswitch
Startswitch ответственен за инициализацию всех данных. Если вы создали игру, он настроит все таблицы и проинициализирует все необходимые данные для игры.

Thinkswitch ответственен за постоянное обновление окна всё время, пока оно открыто. Он реагирует на измениние переменных, пользовательский ввод, и другие вещи. Основываясь на поступившие данные, он может изменить местоположения изображений в окне, или содержание его текста. Программисты, считайте что это - основной цикл кода.

Finishswitch ответственен за уборку - вы можете обнулить переменные, или наоборот, оставить их после того, как окно закроется.

Вместо того, чтобы ждать щелк мышкой, как в следующем примере, вы может вручную закрыть окно (и этим вызвать finishswitch автоматически) используя команду closewindow:
closewindow 2:1
Самый легкий способ понимать эти команды - видеть их в действии. Здесь они анимируют маленького человечка. Запуск:
map test
loadape Lesson5
invoke 2:1
==> После того, как вы это проверите, переходите к уроку 6, где мы будем видеть, как мы можем двигаться этого человечка в стороны!

//*****************************************************************************
//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


Назад
Copyright Z'Ha'Dum LTD © 2024