Загрузить PDF Загрузить PDF

Flash – это популярный формат игр, запускаемых в браузерах. Хотя этот формат сдает позиции мобильным приложениям, многие хорошие игры пишутся именно в этом формате. Во Flash используется ActionScript – это легкий в освоении язык программирования, который позволяет контролировать объекты на экране.

Часть 1
Часть 1 из 3:

Начало

Загрузить PDF
  1. Во Flash создаются простые игры, поэтому выберите жанр игры и продумайте ее концепцию. Прочитайте статью Как сделать компьютерную игру . Основные жанры включают в себя:
    • Бесконечный забег. В таких играх персонаж двигается автоматически, а игрок только направляет его и перепрыгивает через препятствия (или иным образом взаимодействует с игрой).
    • Драки. В таких играх главный персонаж должен победить врагов в бесконечных драках/сражениях.
    • Пазлы. Игры-головоломки. Варьируются от простейших головоломок (собрать три одинаковых шарика) до сложных головоломок, составляющих основу приключенческих игр.
    • РПГ. В таких играх необходимо развивать главный персонаж (его умения, облик, характер), чтобы иметь возможность сражаться с различным противником. Код РПГ-игры намного сложнее кода простейшей игры.
  2. В нем можно создавать и 3D-игры (трехмерные), но для этого нужно очень хорошо знать язык программирования и другие продвинутые приемы. Практически все популярные Flash игры – это двухмерные игры.
    • Флеш-игры лучше всего подходит для кратковременных игровых сеансов, потому что в них играют тогда, когда есть свободное время (не более 15 минут).
  3. Ознакомьтесь с языком программирования ActionScript3 (AS3), на котором пишутся флеш-игры. Вы можете создать простую игру, имея базовые знания в AS3.
    • Есть несколько книг о ActionScript, доступных на Amazon и в других магазинах, наряду с большим количеством учебных пособий и онлайн-примеров.
  4. Это платная, но самая лучшая программа, в которой создаются флеш-игры. Есть и другие аналогичные программы, в том числе бесплатные, но зачастую им не хватает совместимости или у вас уйдет больше времени на достижение тех же целей.
    • Flash Professional является единственной программой, которая вам понадобится для создания игры.
    Реклама
Часть 2
Часть 2 из 3:

Создание простейшей игры

Загрузить PDF
  1. Есть три основные части любого AS3 кода:
    • Переменные. В них хранятся данные (числовые, текстовые, объектные и многие другие). Переменные определяются кодом var и одним словом.
       var 
       playerHealth 
       : 
       Number 
       = 
       100 
       ; 
       // "var" – вы определяете переменную. 
       // "playerHealth" – это имя переменной. 
       // "Number" – это тип данных (здесь - числовой). 
       // "100" – значение, приписанное переменной. 
       // Любая строка кода на AS3 заканчивается ";" 
      
    • Обработчики событий. Ищут определенные события, которые должны быть выполнены, и сообщают о них другим частям программы. Это необходимо для ввода игрока и повторения кода. Как правило, обработчики событий обращаются к функциям.
       addEventListener 
       ( 
       MouseEvent 
       . 
       CLICK 
       , 
       swingSword 
       ); 
       // "addEventListener()" – определение обработчика событий. 
       // "MouseEvent" – категория ввода, ожидаемая к исполнению. 
       // ".CLICK" – определенное событие в категории MouseEvent. 
       // "swingSword" – функция, запускаемая при выполнении события. 
      
    • Функции. Разделы программы, определяемые ключевым словом; к ним обращаются по ходу выполнения программы. Код сложной игры может включать сотни функций, а простой игры – только несколько. Функции могут располагаться в произвольном порядке, так как они запускаются только тогда, когда к ним обращаются.
       function 
       swingSword 
       ( 
       e 
       : 
       MouseEvent 
       ) 
       : 
       void 
       ; 
       { 
       //Код 
       } 
       // "function" – ключевое слово, вводимое в начале любой функции. 
       // "swingSword" – имя функции. 
       // "e:MouseEvent" – дополнительный параметр, указывающий на то, 
       // что к функции обращается обработчик событий. 
       // ":void" – значение, возвращаемое функцией. 
       // Если значение не возвращается, используйте :void. 
      
  2. К объектам можно отнести спрайты, персонажей или видеоклипы. В нашем примере простой игры вы будете создавать прямоугольник.
    • Запустите Flash Professional. Создайте новый проект ActionScript 3.
    • [1]
    • На панели инструментов нажмите инструмент «Прямоугольник». Эта панель может находиться в разных местах в зависимости от конфигурации Flash Professional. Нарисуйте прямоугольник в окне «Сцена».
    • Выделите прямоугольник при помощи инструмента «Выделение».
  3. Для этого откройте меню «Изменить» и выберите пункт «Преобразовать в символ» (или нажмите F8). В окне «Преобразовать в символ» присвойте объекту легко узнаваемое имя, например, «враг» (enemy).
    • Найдите окно «Свойства». В верхней части окна расположено пустое текстовое поле, помеченное как «Имя образца» (если навести на это поле курсор). Введите то же имя, которое вы вводили при преобразовании объекта в символ (в нашем примере «враг»). Это приведет к созданию уникального имени, которое можно использовать в AS3 коде.
    • Каждый «образец» является отдельным объектом, который зависит от кода. Вы можете скопировать уже созданные «образцы»; для этого несколько раз нажмите «Библиотека» и перетащите «образец» на «сцену». При каждом добавлении «образца» его имя будет меняться («враг», «враг1», «враг2» и так далее).
    • Когда вы обращаетесь к объекту в коде, просто используйте имя «образца» (в нашем примере «враг»).
  4. После создания образца вы можете изменить его свойства, например, изменить размер. Для этого введите имя образца, затем «.», затем название свойства, а затем значение:
    • enemy.x = 150; Задает положение объекта «враг» по оси Х.
    • enemy.y = 150; Задает положение объекта «враг» по оси Y (начало оси Y лежит в верхней точке «сцены»).
    • enemy.rotation = 45; Поворот объекта «враг» на 45° по часовой стрелке.
    • enemy.scaleX = 3; Растягивает объект «враг» по ширине на множитель 3. Отрицательное значение величины перевернет объект.
    • enemy.scaleY = 0.5; Урежет высоту объекта вдвое.
    • .
  5. Она возвращает текущие значения для конкретных объектов и необходима для определения того, что все работает правильно. Не стоит включать эту команду в исходный код игры, но она понадобится вам для отладки программы.
  6. В нашем примере вы создадите игру, в которой противник будет менять размер каждый раз, как вы щелкните по нему, и до тех пор, пока у него не закончится запас здоровья. [2]
     var 
     enemyHP 
     : 
     Number 
     = 
     100 
     ; 
     // Задает величину запаса здоровья противника (100 в начале игры). 
     var 
     playerAttack 
     : 
     Number 
     = 
     10 
     ; 
     // Задает силу атаки игрока при щелчке по противнику. 
     enemy 
     . 
     addEventListener 
     ( 
     MouseEvent 
     . 
     CLICK 
     , 
     attackEnemy 
     ); 
     // Действие этой функции направлено непосредственно на объект «враг», 
     // то есть функция запускается только тогда, когда щелчок приходится на объект, 
     // а не на другое место на экране. 
     setEnemyLocation 
     (); 
     // Размещает противника на экране. 
     // Запускается в самом начале игры. 
     function 
     setEnemyLocation 
     () 
     : 
     void 
     { 
     enemy 
     . 
     x 
     = 
     200 
     ; 
     // Перемещает противника вправо на 200 пикселей от левой части экрана. 
     enemy 
     . 
     y 
     = 
     150 
     ; 
     // Перемещает противника вниз на 150 пикселей от верхней части экрана. 
     enemy 
     . 
     rotation 
     = 
     45 
     ; 
     // Поворачивает врага на 45 градусов по часовой стрелке. 
     trace 
     ( 
     "enemy's x-value is" 
     , 
     enemy 
     . 
     x 
     , 
     "and enemy's y-value is" 
     , 
     enemy 
     . 
     y 
     ); 
     // Отображает текущую позицию противника для отладки. 
     } 
     function 
     attackEnemy 
     ( 
     e 
     : 
     MouseEvent 
     ) 
     : 
     void 
     // Создает функцию для описания атаки при щелчке по противнику. 
     { 
     enemyHP 
     = 
     enemyHP 
     - 
     playerAttack 
     ; 
     // Вычитает значение силы атаки игрока из значения запаса здоровья противника. 
     // В результате получается новое значение запаса здоровья противника. 
     enemy 
     . 
     scaleX 
     = 
     enemyHP 
     / 
     100 
     ; 
     // Меняет ширину на основе нового значения запаса здоровья противника. 
     // Это значение делится на 100, чтобы получить десятичную дробь. 
     enemy 
     . 
     scaleY 
     = 
     enemyHP 
     / 
     100 
     ; 
     // Меняет высоту на основе нового значения запаса здоровья противника. 
     trace 
     ( 
     "The enemy has" 
     , 
     enemyHP 
     , 
     "HP left" 
     ); 
     // Отображает потерянный запас здоровья. 
     } 
    
  7. Откройте меню «Управление» и выберите «Протестировать». Запустится ваша игра; щелкните по противнику, чтобы изменить его размер. Отладочная информация будет отображаться в окне «Вывод».
    Реклама
Часть 3
Часть 3 из 3:

Продвинутые приемы

Загрузить PDF
  1. В них (в отдельных файлах) хранятся переменные, постоянные, функции и другая информация; вы можете импортировать пакеты в вашу программу. Используя пакет, уже созданный кем-то, вы сильно упростите себе задачу по созданию программы.
    • Прочитайте эту статью для получения подробной информации о том, как работают пакеты.
  2. Если вы создаете игру с несколькими изображениями и звуковыми файлами, создайте несколько папок. Это позволит вам не запутаться в различных элементах, а также хранить пакеты в соответствующих папках.
    • Создайте базовую папку проекта. В базовой папке необходимо создать подпапку «IMG», где будут храниться изображения, подпапку «SND» для звуковых файлов и подпапку «SRC» с пакетами и кодом игры.
    • Создайте папку «Game» в папке «SRC» для файла «Constants».
    • Такая структура расположения папок не является обязательной; она приведена в качестве примера упорядочивания и организации элементов вашего проекта (это особенно важно в случае больших проектов). Если вы создаете простую игру (как в нашем примере), никаких папок создавать не нужно.
  3. Игра без звука или музыки быстро наскучит любому игроку. Вы можете добавить звук с помощью инструмента «Слои». Более подробную информацию об этом поищите в интернете.
  4. Если в вашей игре много постоянных величин, значения которых не меняются на протяжении всей игры, вы можете создать файл «Constant», чтобы хранить в нем все постоянные величины. Постоянными величинами являются сила притяжения, скорость персонажа и другие. [3]
    • Если вы создаете файл «Constant», поместите его в соответствующую папку проекта, а затем импортируйте в пакет. Например, вы создаете файл сonstants.as и помещаете его в папку с игрой. Чтобы импортировать его, вы должны использовать следующий код:
       package 
       { 
       import 
       Game 
       . 
       *; 
       } 
      
  5. Многие разработчики не раскрывают кодов своих игр, но есть множество учебных и других проектов, в которых вы можете посмотреть код. Это отличный способ узнать о некоторых передовых приемах, которые помогут вам при создании хорошей игры.
    Реклама

Об этой статье

Эту страницу просматривали 54 085 раз.

Была ли эта статья полезной?

Реклама