Rambler's Top100
  Навигация :
  Оглавление
  Новости (Архив)
  Об этом проекте
  О программе GM
  Скачать
  Документация
  Русский Help
  Обучение
  Примеры
  Ресурсы
  Ссылки
  Прямая связь
 Русский Help 4.0 :
  Раздел 1
  Раздел 2
  Раздел 3
  Раздел 4
  Статистика :
Рейтинг@Mail.ru


Using Game Maker

События

Game Maker использует подход, так называемых, управляющих событий. То есть во всех типах случаев образцы объектов получают события (вроде сообщения, что что-то произошло). Тогда они могут реагировать на эти сообщения, выполняя некоторые действия. Для каждого объекта ты должен указать, на какие события он отвечает и какие действия он должен при этом исполнить. Возможно это звучит как нечно сложное и запутанное, но на самом деле все достаточно просто. Прежде всего, для большинства событий объект ничего не должен делать. Для событий, где что-то должно произойти, ты можешь использовать очень простой метод, перетаскивания указаного действия.

В середине окна свойств объекта ты можешь видеть некоторое количество кнопок с названиями Create, Destroy и т.д. Это - различные события. Ниже я приведу полный список событий плюс их описание. Одна из кнопок окрашена темный цветом. Это то событие, которое в данный момент изменяется. Справа находятся - все доступные действия, они представленны в виде небольших иконок. Все они сгруппированы на нескольких вложенных страницах. В следующей главе я опишу все действия и расскажу что они делают. Между кнопками событий и действиями находится белое окошка, называемое списком. Этот список содержит действия для текущего события. Чтобы прибавить действие в список, нужно перетащить его при помощи мыши (кликнуть на иконке действия) и опустить на поле списка. Они будут распологаться друг за другом, и каждое из них будет иметь короткое описание. Для каждого действия тебе будет предложено определить некоторые параметры. Они также будут описаны в следующей главе. Таким образом, после добавления нескольких действий, их местонахождения будет выглядить следующим образом:


Обрати внимание, что слово Create, написано полужирным шрифтом. Это указывает на то, что данное событие содержит действие. У каждого события, которое содержит действия, название будет изменено на полужирное. Теперь ты можешь добавить действие в другое событие. Кликни на выбранном событии левой кнопкой мыши, чтобы выбрать его (кнопка при этом становится темной), после чего перетащи нужное действие в список.

Ты можешь изменять порядок действий в списке, опять же используя перетаскивание. Если при перетаскивании удержать нажатой клавишу (Ctrl), то будет создана копия действия. Ты можешь использовать перетаскивание даже между списками действий для различных объектов. Когда ты нажимаешь правой кнопкой мыши на действие, появляется меню, в котором ты можешь удалить действие (также можно использовать клавишу (Del)) или скопировать и вставить действие. Когда ты удерживаешь курсор мыши над действием, появляется более подробное его описание. Смотри следующую главу для получения дополнительной информации о действиях.

Существует довольно большой набор различных событий. Если ты обратишь внимание, то заметишь что рядом с названиями некоторых событий имеется иконка с меню. Это означает, что данный пункт содержит дополнительный набор событий. Когда ты нажимаешь кнопкой мыши на иконке меню, или кликаешь правой кнопкой мыши на названии события, появляется меню, из которого ты можешь выбрать событие, которое хочешь изменить. Далее приводится описание различных событий. (Только помни, что обычно ты используешь всего несколько из них).

Create event (Событие Создания)
Этот событие происходит, когда создается образец объекта. Обычно оно используется, чтобы определить движение образца и/или для определения некоторых переменные для образца.

Destroy event (Событие Уничтожения)
Это событие происходит, когда образец уничтожается. Если быть более точным, это происходит непосредственно перед тем, как объект будет уничтожен, следовательно когда событие выполняется, образец все еще существует! В большинстве случаев, данное событие не используется, но ты может использовать его например, чтобы изменить счет или создать какой-то другой объект.

Alarm events (События сигнала)
Каждый образец имеет 8 сигнальных тактов. Ты можешь устанавить данный сигнал, синхронизируя использование некоторых действий (смотри следующую главу). Сигнальные часы при этом тикают в обратом порядке, пока не достигнут 0, в этом такте и генерируется событие сигнала. Чтобы указать действие для данных сигнальных часов, ты сначала должен выбрать его в меню. Сигнальные часы очень полезны. Ты можешь использовать их, чтобы позволить некоторым вещам происходить время от времени. Например монстр может изменять направление своего движения через каждые 20 шагов. (В таких случаях одно из действий в событии должно снова устанавливать сигнальные часы).

Step event (Событие Шага)
Событие шага случается каждый шаг игры. Здесь ты можешь поместить действия, которые должны выполняться непрерывно. Например, если один объект должен следовать за другим, здесь ты можешь приспособиться к направлению движения объекта, за которым следуешь. Хотя будь осторожен с этим событием - не помещай много сложных действий в событие шага объектов, которые имеют много образцов. Это может значительно замедлить игру.

Collision events (События Столкновения)
Всякий раз, когда два образцы сталкиваются (то есть их спрайты пересекаются) происходит событие столкновения. Шоворя точнее - происходят два акта столкновения; по одному для каждого образца. Образец может реагировать на это событие столкновения. Установив данное событие, из меню нужно выбрать объект, с которым ты хочешь ассоциировать событие столкновения. Затем ты помещаешь сюда действие.

Существует различие в том, что происходит, когда образец сталкивается с твердым объектом или не-твердым объектом. Прежде всего, когда в событии столкновения нет никаких действий, ничего и не происходит. Текущий образец просто продолжает перемещаться; даже когда другой объект является твердым. Когда же событие столкновения содержит действия, происходит следующее:

Когда другой объект является твердым, образец помещается назад в его предыдущее местоположение (тем как происходит столкновение). Тогда выполняется событие и образец перемещается в новую позицию. Так происходит, например, если событие полностью изменяет направление движения - рикошет образца от стены без остановки. Если столкновение все еще имеется, образец остается на своем предыдущем месте. Таким образом мы можем эффективно прекратить перемещение.

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

Существует масса вариантов использований для акта столкновения. Образцы могут использовать его, чтобы оскакивать от стен. Ты можешь использовать его, чтобы уничтожить объект, когда например в объект попадает пуля и т.д.

Keyboard events (События Клавиатуры)
Когда игрок нажимает клавишу, происходит событие клавиатуры для всех образцов, всех объектов. Доступны различные события для каждой клавиши. В меню ты можешь выбрать клавишу, для которой ты хочешь определить событие клавиатуры и затем перетащить туда действие. Поятно, что только несколько объектов нуждаются в событиях для некоторых клавиш. Существует два разных способа, при помощи которых ты можешь принимать событие клавиатуры. Они бывают или непрерывными, то есть пока клавиша нажата, ты получаешь событие клавиатуры в каждом шаге, или не продолжаемыми, когда ты получаешь только одно событие клавиатуры, в момент нажатия клавиши (и больше одного для клавиши начала повтора). Ты можешь сделать выбор одного из способов в игровых опциях. Доступны два специальных события клавиатуры. Первое называется . Это событие происходит на каждом шагу, когда не нажата никакая клавиша. Второе называется (Any key) и происходит всякий раз, когда нажата какая-то клавиша. Между прочим, когда игрок нажимает сразу несколько управляющих кнопок, происходят события для всех нажатых клавиш. Обрати внимание, что клавиши на цифровой клавиатуре производят соответствующие событие только, когда нажата клавига (NumLock).

Mouse events (События мыши)
Событие мыши происходит для образца всякий раз, когда курсор мыши находится внутри спрайта, представляющего образец. В зависимости от того какая кнопка мыши нажата, ты не получаешь никакую кнопку, левую кнопку, правую кнопку или событие для средней кнопки. Обрати внимание, что эти события происходят только, когда мышь находится над образцом. Если игрок нажимает кнопку мыши на месте, где отсутствуют какие бы то ни было образцы, не генериуются никакие события. Тем не менее иногда бывает важно реагировать на любое нажатие мыши. Это может быть достигнуто, созданием спрайт размером с комнату. Теперь создай объект испольующий спрайт, перекрывающий всю комнату. Ты можешь сделать объект невидимым. Размести его в каждой комнате и он получит событие всякий раз, когда игрок нажмет на нем мышью.

Other events (Другие события)
Существует много других событий, которые могут быть полезны в некоторых твоих играх. Их можно найти в данном меню. Здесь находятся следующие события:
    · Outside (Вне): Этот событие происходит, когда образец полностью находится вне периметра комнаты. Это как правило удачный момент, для того чтобы уничтожить данный образец.
    · Boundary (Граница): Это событие происходит, когда образец пересекает границу комнаты.
    · Game start (Начало игры): Это событие происходит для всех образцов в первой комнате, когда начинается игра. Оно происходит перед событием старта комнаты (смотри ниже) и даже перед событем создания для образцов в комнате. Это событие обычно определяется только в одном "контроллере" объекта и используется, для того чтобы запустить какую-то фоновую музыку, или чтобы инициализировать какие-то переменные, или загрузить некоторые данные.
    · Game end (Конец игры): Это событие происходит со всеми образцами когда игра заканчивается. Оно обычно определяется только для одного объекта. Его используют например, для того чтобы сохранить некоторые данные в файл.
    · Room start (Начало Комнаты): Это событие происходит для всех образцов в комнате, в момент когда данная комната загружается. Оно происходит перед событиями создания.
    · Room end (Конец Комнаты): Это событие происходит со всеми существующими образцами, когда комната заканчивается.
    · No more lives (Нет большее жизней): Game Maker имеет встроенную систему жизни. Существует действие, для установки и изменения числа жизней. Всякий раз, когда число жизней становится меньше или равно 0, это событие происходит. Оно как правило используется, чтобы закончить или перезапустить игру.
    · Animation end (Завершить анимацию): Как уже было замечено ранее, анимация состоит из нескольких изображений, которые отображаются одно за другим. После того, как будет отображено последнее изображение, прокрутка картинок начинается снова, с первого изображения. Событие происходит именно в этот момент. Оно может использоваться, например чтобы изменить анимацию или уничтожить образец.
    · User defined (Определяемое пользователем): доступны восемь таких событий. Обычно они никогда не происходят, если ты сам не вызываешь их из части кода.
Drawing event (Событие Рисования)
Образцы, когда они видимы, рисуют свой спрайт на экране в каждом шаге. Когда ты определяешь действия в событии рисунка, спрайт не рисуется, а вместо этого выполняются указанные действия. Оно может использоваться, чтобы нарисовать вместо спрайта что-то другое или чтобы сначала сделать некоторые изменения в параметрам спрайта. Существует множество действий рисунка, которые в первую очередь предназначены для использования в событии рисунка. Обрати внимание, что событие рисунка выполняется только когда объект является видимым. Также обрати внимание, что независимо от того что ты здесь рисуешь, события столкновения привязаны к спрайту, который ассоциирован с образцом.

    Предыдущая страница     В начало     Следующая страница

© 2001 Simple Life & World


Warning: require_once(/home/gmakerh/public_html/gmaker/8f521377200ec76d9ff24da16298bd26/sape.php) [function.require-once]: failed to open stream: No such file or directory in /home/gmakerh/public_html/gmaker/help/help40/part_1/10_events.html on line 334

Fatal error: require_once() [function.require]: Failed opening required '/home/gmakerh/public_html/gmaker/8f521377200ec76d9ff24da16298bd26/sape.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/gmakerh/public_html/gmaker/help/help40/part_1/10_events.html on line 334