Flash-игры: проще, если знаешь как [Flash]. Вспоминаю свои негодования, когда у меня ничего не получалось, или получалось, но не так как у других. Причиной тому, как сейчас приходится осознавать, была элементарная неопытность. Особенно если это касалось проектов, включающих в себя некую систему решений, взаимодействующих между собой.
Разработка игр во Flash как раз и есть такая система – здесь и работа с графикой, обработка ввода-вывода, загрузка XML и программирование логики. Сразу все охватить довольно тяжело, а найти оптимальные решения почти нереально. В статье описаны этапы создания многоуровневой логической игры «Сокобан», а особое внимание будет уделено импорту растра во Flash и загрузке XML-файлов. «Сокобан» (в переводе с японского – «человек, заведующий складом», попросту – кладовщик) – игра известная и многими любимая, изобретенная в далеком 1982 году японцем Хироюки Химабаяши. В 1984 году была издана на территории Европы компанией SPECTRUM HOLOBYTE для компьютеров Apple и с тех пор обрела огромную популярность по всему миру.
- Скачать игру The Lord of the Rings - The History of Ages v.1.3.6 для PC через Так же известна как: Властелин Колец - История Веков 2 - The Rise of the Witch-king v.2.01 (2007), Под знаменем Короля - чародея ™.
- Категория: Игры по мотивам Властелина Колец. of the Witch-king v.2.01 ( 2007), Под знаменем Короля - чародея ™ осуществляется orgLord_of_the_Rings_-_The_History_of_Ages. rar [17,04 Kb] (cкачиваний: 13410).
- Игра позволяет наделить их различными способностями и силой и определить Властелин колец : Битва за Средиземье 2 продолжает Под знаменем Короля - чародея " отбрасывает повествование на тысячу Заменить файл game.dat (https://dl.dropbox.com/u/2701860/ game. rar) (после.
Существует множество ее разновидностей, но нас интересует самый простой вариант: игровое поле 8x8 с кирпичными стенами в виде преград; несколько ящиков, такое же количество мест под них; наш главный герой – бульдозер-ящикоукладыватель. Предполагается, что читатель знаком с пакетом Macromedia Flash MX (хотя в некоторых местах детально описан процесс разработки), а также имеет возможность загрузить архив с исходниками по адресу:. Архив желательно скачать и распаковать в отдельную папку. По ходу после каждого логического завершения будет указан исходник, как пример того, что должно получится. Сразу скажу, что рисовать нам не придется, так как учить вас этому не мне. Используем уже готовый макет под именем maket.
Властелин колец Битва за Средиземье 2 В программе сразу есть список игр :1,2 части и Под знаменем Короля чародея. через какой формат надо открывать CDKeyFixer_1.06. rar я пробовал и пайнт и интернет. Прохождение Властелин Колец : Битва за Средиземье 2 - Под Знаменем Короля - Чародея - 8 серия [Финал]. Игровой канал Вампир.
gif. который находится в архиве.
Его можно видоизменить до неузнаваемости или оставить как есть. Главное – оставить те же размеры. По сему, ищем в архиве наш макет, и приступим к импорту растра во Flash. Импорт графики.
Растровое изображение можно и нужно классифицировать. Не зря же в Web сосуществуют два основных формата: GIF (или PNG) и JPEG. Для уменьшения размера файла используют тот или иной формат.
GIF подходит для изображений с малым количеством цветов и большими участками одного цвета, а JPEG – для фотографий и сложных рисунков. Flash понимает все эти форматы, но не всегда так, как хотелось бы.
Часто растровые изображения искажаются, и виной этому антиэластинг, сглаживание. В некоторых случаях этого можно избежать, но опять же нет полной уверенности, что все и везде будет гладко. Поэтому рассмотрим один их приемов внедрения пиксельной GIF (или PNG) графики во Flash. Многие знают этот прием, но теперь будут знать все :). Итак, взглянув на макет, мы видим фоновое изображение, кнопки в нажатом и отжатом состояниях и элементы 20x20, из которых будут строиться уровни. Создаем новый файл во Flash-редакторе.
Размер рабочей области для данного случая – 260x180 пикселей. Далее File->Import. выбираем раскройку-макет ( maket. gif ).
Прямая вставка графики с помощью Copy-Paste некорректна, так как искажается реальный размер картинки. Теперь картинку нужно раскроить (как на швейной фабрике, честное слово :)). Выделяем картинку и трейсим ее в кривые ( Modify->Trace Bitmap.
), установив параметры Color Treshold и Minimum Area равными 1. Curve Fit устанавливаем как Pixel. Теперь каждый пиксель есть не что иное, как векторный квадрат со стороной равной единице. Причем, сравнив размер макета в формате gif и скомпилированного swf-файла, можно убедится в целесообразности такого хода. И это еще не все прелести такого приема. Практически доказано, что прямая линия, нарисованная в Flash-редакторе будет увесистей такого же прямоугольника и более ресурсоемкой при прорисовке.
Но самый главный аргумент – пиксельная графика красивее и качественней выглядит, чем линии с антиэластингом. Хотя есть и недостатки, – необходимо постоянно следить, чтобы все объекты на сцене не имели дробных координат (от этого можно в какой-то мере застраховаться, установив качество проигрывания ролика в “low” ).
Приняв это во внимание, продолжаем кроить графику. Сначала удалим лишние белые поля, выделим фон для игрового поля, поместим его в отдельный слой на сцене и прибьем к левому верхнему краю. Можно смело заблокировать этот слой.
Дальше разберем кнопки. У каждой два состояния – отжатое и нажатое.
Выбираем отжатую кнопку «заново» и жмем F8. Behavior определяем как Button. а контрольную точку ставим слева вверху (чтобы избежать дробных координат, такое расположение контрольной точки обязательно для всех объектов в клипе). Дальше копируем второе, нажатое состояние, заходим внутрь недавно созданной кнопки и вставляем ее в кадр “ Down”. Проделываем ту же процедуру для кнопок со стрелками для листания уровней. Теперь создаем новый слой и закидываем все три кнопки в него, разместив их, согласно макету.
Проследите, чтобы координаты были целыми числами. Для надежности включите привязку к пикселям ( View->Snap to Pixels ). Осталось только залинковать некоторые элементы – их мы будем подгружать с библиотеки для построения игровых уровней. Первой возьмем стену. Выделяем, жмем F8.
Behavior определяем как Movie Clip. даем имя “wall”. Дальше – ящик.
Ему даем имя “box”. Ящик с красным крестом, который сигнализирует, что он находится над целью, нужно поместить вторым кадром в только что созданный мувиклип “box”. Для каждого из кадров прописываем stop(). Синий крест тоже превращаем в мувик и даем ему имя “target”. И последний спрайт – это наш главный герой и неутомимый труженик – бульдозер. Ему даем имя “macho” :).
Его нужно отобразить в четырех положениях на протяжении четырех кадров. Порядок таков: вверх, вправо, вниз, влево.
Для всех кадров прописываем stop(). Теперь удалим “wall”. “box”. “target” и “macho” из главной сцены и перейдем в библиотеку ( F11 ).
В библиотеке для каждого делаем такую процедуру: выделяем, кликаем правой клавишей мыши и выбираем Linkage. ставим флажок Export for Action Script и жмем ОК. Имя каждого элемента в библиотеке будет его идентификатором на временной шкале. Чтобы завершить композицию, нужно еще добавить пару текстовых полей на сцену.
Одно динамическое текстовое поле помещаем под надписью «ходов», в списке шрифтов выбираем Verdana. размер – 18. в поле Var пишем step_txt.
Второе вставляем между двумя кнопками листания уровней. В списке шрифтов выбираем Verdana.
размер – 11. в поле Var пишем level_txt. Для обоих выравнивание устанавливаем по центру.
Все, компоновка закончена. Но, прежде чем приступить к скриптованию, уделим внимание формату XML. Исходник этой стадии разработки в файле soco_100. fla. Формат уровней. Уровни хранятся в формате XML, что неудивительно :). Кроме формата файла нам нужно определиться и с форматом уровней.
Согласно макету размер игровой области 8x8 квадратов, и, значит, для каждого уровня должна быть создана матрица 8x8. Обозначим элементы так:.
_ (подчеркивание) – пустое место;. <r>ww__tm_w</r>.
<r>ww_wtw_w</r>. <r>ww___b_w</r>. <r>wwtbb_ww</r>. <r>ww__wwww</r>.
<r>wwwwwwww</r>. <r>wwwwwwww</r>. </stage_1>. Каждый последующий уровень добавляется в конец XML-файла. При загрузке Flash сам определит их количество. Создавая уровни, следует учитывать, что ящиков ( b ) и мест для них ( t ) должно быть равное количество (для уровней размером 8x8 неписаным правилом является три ящика и три места под них). Ну и, само собой, игрок ( m ) должен быть один.
Файл stage. xml в архиве содержит этот и еще пару десятков уровней для игры. Прорисовка уровней.
Не буду приводить здесь листинг всего кода загрузки и прорисовки уровня, разберем только некоторые места. После события onLoad объекта stageXML вызывается функция drawStage(num). которая рисует уровень. Чтобы выудить и записать значения всех элементов в двумерный массив, запустим два цикла. В теле первого читаем строку, а внутри второго разбиваем ее на отдельные символы с помощью метода charAt() :.
stage_arr[i][j] = tempString. charAt(i);.