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


The Game Maker Language

Взаимодействие с пользователем

Не существует ни одной компьютерной игры, которая не взаимодействовала бы с пользователем (игроком). Стандартный путь решения данного вопроса в Game Maker это поместить действие в события клавиатуры или мыши. Но иногда ты нуждаешся в более полном контроле над управлением. Изнутри части кода ты можешь проверить, нажаты ли клавиши на клавиатуре, проверить позицию мыши и нажаты ли ее кнопки. Обычно данные аспекты проверяются в событии шага некоторого управляемого объекта и используешь соответствующее действие. Существуют следующие переменные и функции:

    mouse_x* - X-координата мыши. Не может быть изменена.
    mouse_y* - Y-координата мыши. Не может быть изменена.
    mouse_button - Нажатая в данный момент кнопка мыши. Как значение использует mb_none, mb_left, mb_middle или mb_right.
    keyboard_lastkey - Клавиатурный код последней нажатой клавиши. Смотри ниже - константы клавиатурного кода. Ты можешь изменять его, например устанавить на 0, если ты нажимаешь его.
    keyboard_key - Клавиатурный код нажатой в данный момент клавиши (смотри ниже; 0 если нет).
    keyboard_lastchar - Последний нажатый символ (как строка).
    keyboard_string - Строка, содержащая последний в большинства 80 печатных символов. Данная строка может содержать только символы печатного типа. Она также коректно отвечает на нажим клавиши backspace, стирая последний символ.
Чтобы проверить, нажата ли определенная клавиша или кнопка мыши ты можешь использовать следующие функции. Это бывает полезно, когда сразу несколько управляющих кнопок нажаты одновременно.
    keyboard_check(key) - Возвращение, если нажата клавиша с конкретным клавиатурным кодом.
    keyboard_check_direct(key) - Возвращение, если нажата клавиша с конкретным клавиатурным кодом, проверяемая непосредственно аппаратные средства. Результат независим от того какое приложение рассматривается. Она учитывается для еще нескольких проверок. В особенности ты можешь использовать клавиатурные коды vk_lshift, vk_lcontrol, vk_lalt, vk_rshift, vk_rcontrol и vk_ralt, чтобы проверить, нажат ли левый или правый shift, control или клавиша alt. (Она не работает под Windows 95!).
    mouse_check_button(numb) - Возвращение, если нажата кнопка мыши (используется как значения mb_none, mb_left, mb_middle или mb_right).
Для виртуальных клавиатурных кодов существуют следующие константы:
    vk_nokey - Клавиатурный код представляет, что не нажата никакая клавиша
    vk_anykey - Клавиатурный код представляет, что нажата любая клавиша
    vk_left - Клавиатурный код для клавиши стрелка "влево"
    vk_right - Клавиатурный код для клавиши стрелка "вправо"
    vk_up - Клавиатурный код для клавиши стрелка "вверх"
    vk_down - Клавиатурный код для клавиши стрелка "вниз"
    vk_enter - клавиша ENTER
    vk_escape - клавиша ESC
    vk_space - клавиша "пробел"
    vk_shift - клавиша SHIFT
    vk_control - клавиша CTRL
    vk_alt - клавиша Alt
    vk_backspace - клавиша Backspace
    vk_tab - клавиша Tab
    vk_home - клавиша Home
    vk_end - клавиша End
    vk_delete - клавиша Delete
    vk_insert - клавиша Insert
    vk_pageup - клавиша Pageup
    vk_pagedown - клавиша Pagedown
    vk_pause - клавиша Pause/Break
    vk_printscreen - клавиша Printscreen/SysRq
    vk_f1 ¦ vk_f12 - клавиатурные коды для функциональных клавиш F1 - F12
    vk_numpad0 ¦ vk_numpad9 - цифровые клавиши на цифровой клавиатуре
    vk_multiply - клавиша умножения на цифровой клавиатуре
    vk_divide - клавиша деления на цифровой клавиатуре
    vk_add - клавиша Add на цифровой клавиатуре
    vk_subtract - клавиша вычитания на цифровой клавиатуре
    vk_decimal - клавиша десятичной точки на цифровой клавиатуре
Для символьных клавиш используют например ord('A'). (С заглавной буквы). Следующие константы могут использоваться только в keyboard_check_direct:
    vk_lshift - клавиша левый Shift
    vk_lcontrol - клавиша левый Ctrl
    vk_lalt - клавиша левый Alt
    vk_rshift - клавиша правый Shift
    vk_rcontrol - клавиша правый Ctrl
    vk_ralt - клавиша правый Alt
Для примера, предположим что ты имеешь объект, которым пользователь может управлять при помощи клавиш курсора, ты можешь поместить следующую часть кода в событие шага объекта:
    {
       if (keyboard_check(vk_left)) x -= 4;
       if (keyboard_check(vk_right)) x += 4;
       if (keyboard_check(vk_up)) y -= 4;
       if (keyboard_check(vk_down)) y += 4;
    }
Конечно намного проще просто поместить его в событие клавиатуры.

Как наверно ты уже знаешь, в игровых опциях ты можешь указать, должны ли события клавиатура и мыши быть непрерывными или только одиночными (когда пользователь нажимает кнопку или клавишу). Ты можешь устанавить и изменять это в пределах кода, используя следующие переменные:
    keyboard_continuous - Указывает, должны ли события клавиатуры быть непрерывными (1) или нет (0).
    mouse_continuous - Указывает, должны ли события мыши быть непрерывными (1) или нет (0).
Имеются три дополнительных функции, связанные со взаимодействием.
    keyboard_clear(key) - Очищает состояние клавиши. Это означает, что больше не будет генерироваться событие клавиатуры, пока оно не повторится.
    mouse_clear(button) - Очищает состояние кнопки мыши. Это означает, что больше не будет генерироваться событие мыши, пока плеер не отпустит кнопку и не нажмет ее снова.
    io_clear() - Очищает все состояния клавиатуры и мыши.
    io_handle() - Обрабатывает ввод/вывод пользователя, модифицируя состояние мыши и клавиатуру.
    keyboard_wait() - Ожидать пока пользователь не нажмет клавишу на клавиатуре.

Поддержка Джойстика

Хотя это может показаться странным, но Game Maker фактически имеет поддержку джойстика. Движения джойстика создают события клавиатуры 1 - 9 как на цифровой клавиатуре. Эти четыре кнопки генерируют события клавиатуры для символов A, B, C и D. Следовательно ты можешь воздействовать на них. Только учти, что ты не получишь эту информацию при помощи функции keyboard_check (), потому что данная функция проверяет клавиатуру. Вместо этого существует целый набор функций, для работы с джойстиком. Game Maker поддерживает до двух джойстиков. Все указанные функции как параметр берут идентификатор джойстика.
    joystick_exists(id) - Возвращение, если идентификатор джойстика (1 или 2) существует.
    joystick_direction(id) - Возвращает клавиатурный код (vk_numpad1 к vk_numpad9) определяющий направление идентификатора джойстика (1 или 2).
    joystick_check_button(id,numb) - Возвращение, если кнопка джойстика нажата (номер в диапазоне 1-4).
    joystick_xpos(id) - Возвращает позицию (-1 до 1) X оси идентификатора джойстика.
    joystick_ypos(id) - Возвращает y-позицию джойстика.
    joystick_zpos(id) - Возвращает z-позицию джойстика (если он имеет z-ось).

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

© 2001 Simple Life & World

http://medtehnic.ru/glavnaya/massazhnie-kresla/massazhnoe-kreslo-montreal.html - MedTehnic.ru . Мифы об антибиотиках. Лекарственные препараты и MRSA.