Знакомство с Klik&Play
Конструктивно Klik & Play представляет собой полноценную среду разработки интерактивных приложений от хранителей экрана и презентаций до тестов и двумерных игр. Он включает в себя несколько редакторов, каждый из которых служит определённой цели, объединённых общей оболочкой, позволяющей также запускать готовые игры, транслировать их в выполнимый файл и даже создавать дистрибутивный диск с игрой. Пользовательский интерфейс достаточно продуман и нисколько не уступает популярным профессиональным оболочкам программирования, типа Visual C++.
Первым из редакторов, с которым приходится знакомиться при создании или модификации игры - это Storyboard Editor (редактор сценария).
Storyboard Editor определяет последовательность игровых уровней.
Каждый уровень или фрейм (frame - англ. рамка) может быть удалён, скопирован или перенесён вместе со своим содержимым. Разумеется, можно добавить новый фрейм по своему усмотрению, причём это может быть как игровой уровень, так и просто изображение, в том числе анимированное.
В качестве анимированных изображений Klik & Play понимает только так называемый флик-формат (*.fli или *.flc). Файлы в этом формате могут обрабатываться многими программами для обработки анимации изображений (например, GIF-аниматоры).
Щелчок правой кнопкой мыши по любому из фреймов вызывает контекстное меню, которое позволяет перейти в Level Editor - редактор уровня. То же самое можно сделать с помощью кнопочки Goto или пункта меню Game.
Редактор уровня позволяет создать игровой уровень, выбрав фоновое изображение для игрового поля и расставив на нём другие объекты.
Объекты эти берутся из специальных библиотек и делятся на активные и фоновые.
Библиотеки представляют собой отдельные файлы, которые могут поставляться как вместе с программой так отдельно, в которых содержаться активные и фоновые графические объекты. Как правило, это небольшие анимированные картинки, изображающие персонажи и предметы, которые могут пригодиться в игре.
Активные объекты - это предметы или персонажи, предназначенные, для взаимодействия с другим персонажем или объектом, либо перемещаемые под управлением компьютера или игрока.
Фоновые объекты - могут быть как задним планом, так и платформой или лестницей.
Опции для каждого объекта могут быть установлены или изменены опять-таки с помощью контекстного меню.
Самое лёгкое - выбрать фон и расставить на нём объекты.
Например, мы задумали создать игру "Остров сокровищ", где мальчик Джим собирает разбросанные там и сям сундуки с сокровищами, а одноногий пират, бегая по острову, мешает ему. Собрав все сундуки, Джиму следует попасть на корабль - тогда можно завершить игру или перейти на следующий уровень.
Для реализации задуманного в библиотеках есть готовые объекты: Pirate - пират, Page - Паж (он изображает Джима), Treasure Chest - сундук с сокровищами, Man 'o' War - парусник.
Чтобы активные объекты (Джим и пират) двигались, им нужно задать способ перемещения (Movement). Например, Джим будет перемещаться под управлением игрока по восьми направлениям (Eight direction) - стрелочными клавишами, а пират будет управляться компьютером и двигаться, следуя за Джимом (Bouncing Ball).
Но вернёмся к настройке движения: делается это в диалоговом окне Choose a movement (изменение перемещения).
Choose a movement позволяет реализовать все основные виды движения объектов в играх.
Так, Race Car (гоночный автомобиль) связывает стрелочные клавиши с ориентацией объекта (управление автомобильчиками при виде сверху), а Static означает неподвижность объектов, у нас неподвижными будут сундуки с сокровищами.
Для настройки вида объекта в соответствии с направлением движения, следует отредактировать серию изображений, из которых складывается движение персонажа. В нашем случае Джим должен поворачиваться лицом в сторону движения. Но чтобы при движении вверх и вниз он не занимал горизонтального положения, в анимационной последовательности потребуется отредактировать каждый кадр (Edit frame). В Klik & Play есть встроенный графический редактор, который и позволит выполнить эту нехитрую операцию.
Как же из всего вышеописанного сделать действующую игру? Интересно, что Klik & Play не содержит какого-либо встроенного языка в привычном понимании, а всё программирование осуществляется визуально с помощью двух средств. Ими являются Step Through Editor (пошаговый редактор) и Event Editor (редактор событий). Нагляднее "программирование" происходит в пошаговом редакторе, но у редактора событий больше возможностей редактирования и более профессиональный вид.
Для того чтобы создать собственно игру, необходимо после расстановки объектов в игровой области (play area) и настройки их свойств запустить пошаговый редактор.
Пошаговый редактор как бы запускает игру на выполнение, останавливаясь всякий раз, когда происходит какое-либо событие.
Типичным событием является столкновение (collision) объектов. После короткого сообщения об этом открывается окно пошагового редактора, в котором нужно описать процедуру обработки события.
Когда пират настигает Джима, то есть между ними происходит столкновение, и у Джима следует вычесть одну жизнь, по крайне мере такое событие выглядит естественно. А вот так программирование этого события выглядит в окне пошагового редактора, появляющегося вскоре после сообщения о коллизии.
В редакторе событий весь "текст" программы в представлен в виде таблицы, в которой для каждого активного объекта имеется столбец, а каждое событие располагается в очередной строке. Кроме активных объектов имеются "системные" объекты, являющиеся неотъемлемой частью любой программы. Они отвечают за звук, изменение счёта, создание новых объектов и собственно управление игрой (перезапуск, переход на другой уровень, окончание игры и т.п.). Щёлкнув по любому из объектов в заголовке столбца, можно вывести на экран строки с событием относительно этого объекта, как бы установить фильтр. Галочка в клетке на пересечении столбца и строки говорит о том, что данный объект участвует в данном событии. Например, на рисунке события представлены относительно первого и единственного игрока (Player 1). Выделена галочка в строке-событии "Когда собран последний сундук". Здесь, в принципе, можно изменить установленный в пошаговом редакторе порядок: изменить количество жизней и т.п.
И это всё! Ну, почти всё. Получившаяся игра будет казаться несколько недоделанной. В редакторе уровня имеется кнопочка Tools (инструменты), которая позволяет добавить специальные стандартные объекты. Нам в игре понадобится отображать счёт (Score Object) и текущее количество жизней (Lives Object). Чтобы жизни связывались с правильным объектом (мальчиком Джимом), обобщённые силуэты человечков заменим уменьшенным изображением самого Джима (контекстное меню - Edit Lives).
Если сильно хочется, игру можно сохранить в выполняемый ехе-файл или создать дистрибутив на дискете.
Конечно, настоящая игра не должна состоять из одного уровня, и связать уровни между собой можно мини-мультфильмами. Да мало ли чего захочется после успешного создания простой игры! Но в том-то и дело, что для более сложного программирования нужно "учиться, учиться и учиться".
Несмотря на свою игровую направленность, Klik & Play позволяет делать не только игры. Например, чтобы создать простой тест с выбором ответа из нескольких вариантов, потребуется всего два стандартных объекта: Question Object (объект-вопрос, на его значке буквы Q/A, поэтому его ещё можно называть объектом вопрос-ответ) и Score Object (счёт игры).
Чтобы описать реакцию программы на верный (Correct Answer) или неверный ответ, потребуется вызвать редактор событий (Event Editor), непосредственно в нём добавить новое условие (New Condition):
В контекстном меню объекта вопрос-ответ выбирается событие, для которого следует написать процедуру обработки. В данном случае таким событием будет верный ответ, поскольку в меню выбран пункт "Is the answer correct?" (является ли ответ правильным?). Правильный ответ следует поощрить одобрительным звуком, добавить 1 балл и перейти на следующий уровень. Обработка неверного ответа будет отличаться другим звуком и переходом на другой уровень без изменения счёта.
Чтобы создать полноценный тест, следует придумать несколько вопросов. Редактор сценария (Storyboard Editor) позволяет скопировать игровой уровень. Нам это нужно, чтобы не настраивать каждый раз реакцию на верный и неверный ответ. После создания достаточного количества уровней следует в каждом из них отредактировать содержимое объектов вопрос-ответ. Чтобы в итоге программа сообщила пользователю результат, можно создать специальный уровень, где нет вопросов, а с помощью текстового объекта (Text object) комментируется счёт. А ведь "некоторые товарищи" до сих пор считают создание программы-теста значительным программистским достижением!
Подведя итог сегодняшней лекции можно отметить, что не претендуя на серьёзное (профессиональное) применение, творческие среды, подобные Klik & Play могут успешно применяться в обучении по так называемому "проектному" методу, развивая способность учащихся мыслить крупными категориями, не отвлекаясь по мелочам и не выучивая значительные объёмы информации, бесполезной в дальнейшей работе.
Xion