Основы офисного программирования и документы Word


О реализации игры


В этой игре нет ничего, что потребовало бы привлечения специальных возможностей Office 2000, достаточно знать VB и интерфейсные объекты. Реализация этой игры может служить хорошим примером создания документа - обложки, то есть такого документа Office 2000, под обложкой которого находится обычный программный проект, написанный в ядре языка VBA, по существу на чистом VB, и не использующий обращений к специальным объектам приложений Office 2000. С другой стороны, реализация этой игры позволяет продемонстрировать создание и работу с визуальными объектами в документах Office 2000. Зачастую, крайне важно иметь видимые образы для используемых объектов документа и разрешать пользователю документа работать с этими образами, производя над ними те или иные манипуляции.

В нашей игре есть 8 основных объектов: Человек, Волк, Коза, Капуста, Река, Левый Берег, Правый Берег, Лодка. Я добавил еще один объект - Акулу, чтобы реку было страшнее переплывать. Эти объекты будут иметь видимые образы, манипулируя которыми игрок добивается достижения поставленной цели, доставить человека, козу, волка и капусту с левого на правый берег. Полем, где будет разворачиваться действие игры, будет обычная форма VBA, она будет образом объекта Река. На реке (форме) я размещу образы других объектов игры. Каждый из этих объектов будет задаваться объектом VBA класса Image из библиотеки классов MSForms.

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

Перед программистом, реализующим эту игру, стоят две основные задачи:

  • Спроектировать визуальный интерфейс игры, форму с ее объектами.
  • Написать обработчики событий для интерфейсных объектов.


Первую из этих задач он, скорее всего, как это сделал я, будет решать руками, визуально проектируя интерфейс, для решения второй задачи ему потребуется знание языка VBA и интерфейсных объектов. Знание объектов Office 2000 (объектов Word, Excel, Power Point) ему не понадобится, под какой бы документной обложкой не был реализован этот программный проект.

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

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


Рис. 6.1.  Форма в начальном состоянии в игре "Волк, Коза и Капуста"

Содержание раздела