Мои искания в создании флэш-стратегии (Часть 1)
Запись от EndoCrinologist размещена 25.08.2011 в 15:31
Обновил(-а) EndoCrinologist 28.10.2011 в 09:39
Обновил(-а) EndoCrinologist 28.10.2011 в 09:39
Всем доброго времени суток!
Начал создавать флэш-стратегию и решил поделиться своим "сочинением" в AS2, позволяющее Вам "взять" здание из имеющихся в Вашем списке и "перенести" его в поле для начала его строительства.
P.S. Кому это не надо или тот, кто просто решил посмеяться - прошу дальше не читать. А вот дать дельный совет - можно.
Итак. Этап первый. Буду показывать предельно примитивный пример "строительства". Начнем с железа:
1. Войдите в основную сцену и проведите ДВЕ грани: с правой стороны сцены одну полосу (отступ справа 60 px) и с нижней стороны одну линию (отступ снизу 100 px). Это будут наши "панели": в правой части будут располагаться доступные сооружения, а в нижней - основное меню и прочее. Но зацикливаться мы на этом не будем. Это линии, просто обозначающие поля, где построить будет здание невозможно.
2. Создайте новый Movie Clip под любым названием и начните его редактировать. В первом кадре нарисуйте круг, в 40-ом - квадрат. Выделите кадры и создайте shape-анимацию (это мы создали примитивное строительство нашего объекта). В первом и последнем кадре нашего "сооружения" вставьте код:
Это нужно, чтобы здание не начало своё строительство прямо на панели и не зацикливало его, когда оно закончится.
3. Поместите наш мувик на основную сцену и назовите экземпляр obj1.
Теперь, второй этап: пошаговое написание кода AS2.
1. Создайте новый слой, назовите его Actions (слой с "железом" можно назвать Железо).
2. Сначала проинициализируем игру функцией initGame() и сразу же её выполним:
function initGame(){ bordx = 60; // это координаты наших границ строительства по Х bordy = 100; // это координаты наших границ строительства по У newx = 0; // это необязательный код новых координат объекта по Х при отпускании мыши. newy = 0; // это необязательный код новых координат объекта по У при отпускании мыши. dx = 0; // это необязательный код изменения координат объекта по Х при отпускании мыши относительно сцены. dy = 0; // это необязательный код изменения координат объекта по У при отпускании мыши относительно сцены. sw = Stage.width; // ширина сцены sh = Stage.height; // высота сцены oldx = obj1._x; // инициализируем старые координаты объекта по Х, чтобы возвращать его обратно на место oldy = obj1._y; // инициализируем старые координаты объекта по У, чтобы возвращать его обратно на место o1w = obj1._width; // ширина объекта o1h = obj1._height; // высота объекта } initGame();
obj1.onPress = function():Void{ this.startDrag(true); // запускаем переноску объекта с привязкой к центру }
obj1.onRelease = function():Void{ newx = obj1._x; // присваиваем новую координату Х объекта newy = obj1._y; // присваиваем новую координату У объекта dx = sw - newx; // находим разницу между шириной сцены и полученной новой Х-координатой объекта dy = sh - newy; // находим разницу между высотой сцены и полученной новой У-координатой объекта numx = o1w / 2 + bordx; // находим расстояние запрещенной зоны справа numy = o1h / 2 + bordy; // находим расстояние запрещенной зоны снизу if (dx >= numx){ // если разница между шириной и новой Х-координатой объекта БОЛЬШЕ запрещенной правой зоны, то ... trux = true; // получаем разрешение по Х-координате } else { // Иначе ... trux = false; // разрешение по Х-координате не получено } // Тоже самое проделываем и по координате У: if (dy >= numy){ truy = true; } else { truy = false; } if ((trux == true)&&(truy == true)){ // Если оба разрешения получены... this.stopDrag(); // ...то оставляем объект на новом месте... this.play(); // ...и начинаем его строительство. this.enabled = 0; // запрещаем дальнейшее перетаскивание объекта. } else { // Иначе... // Переставляем объект на место (на левую панель) this._x = oldx; this._y = oldy; this.stopDrag(); // остановка перетаскивания } }
Спасибо за внимание
Всего комментариев 20
Комментарии
26.08.2011 14:32 | |
Так это же AS1
|
28.08.2011 21:34 | |
Данный код может быть несовершенным
|
28.08.2011 22:38 | |
А никто не может сохранить под более новую версию?
А то не открывает |
29.08.2011 03:32 | |
ChuwY - бросай ас2
|
29.08.2011 16:03 | |
Да бросил уже. Понастольгировать хочется
|
28.10.2011 00:45 | |
Я что-то ничего не понял
|
28.10.2011 01:18 | |
А что именно не поняли?
|
28.10.2011 01:31 | |
А в чем же соль?
|
28.10.2011 01:39 | |
на этом основа 99% стратежных флеш-игр) да и я прописал в начале статьи
Цитата:
P.S. Кому это не надо или тот, кто просто решил посмеяться - прошу дальше не читать
|
28.10.2011 01:57 | |
Цитата:
на этом основа 99% стратежных флеш-игр)
|
28.10.2011 02:21 | |
Так и что?
|
28.10.2011 08:25 | |
что "и что?". вы задали вопрос - я ответил. это раз. и к тому же я же не просил читать вас статью. если вам не нравится - прошу здесь не находиться
|
28.10.2011 09:37 | |
Вас никто не просит их совершать
|
28.10.2011 12:28 | |
Цитата:
но при чём здесь "95% стратегий"?
|
28.10.2011 17:15 | |
хаха +1
|
29.10.2011 05:56 | |
Ясно. Мистер "Яжнепросил" читает лекцию: "ДрагАндДроп - основа основ". ЛоЛ.
|
17.01.2012 02:08 | |
А какова рода игру собрались делать, DUNEII ?
Данная статья больше похожа на начало создания игры "одевалка/раздевалка", или "собери пазл". |
Последние записи от EndoCrinologist
- Настройка сокетов для Flash 8 (07.03.2013)
- Создание простого чата. Часть 1. Основы считывания данных (28.10.2011)
- Создание простого чата. Часть 1. Основы получения данных (28.10.2011)
- Создание простого чата. Часть 1. Основы отправки данных (27.10.2011)
- Создание простого чата. Часть 1. Введение (27.10.2011)