Косынка “Цианид и Счастье” в Action Script 3.0

Приветствую вас, талантливые человечки :) Сегодня будет урок по созданию (как мне казалось простой, а она средней сложности) игры во флеше – КОСЫНКА “Цианид и счастье”. :)

Правила игры писать не буду, думаю это всеобщее достояние человечества известно всем :D
Игровое поле я взял стандартное из игры на win 7, т. к. я делаю обзор, то можно вроде как… Кстати, из-за этого не выложу игру в контакт, ибо там с этим строго, за картинку поля может влететь, да ещё от  microsoft. Карты сам сделал из комиксов, но в исходник запихнул другие :D т.к. есть идея насчёт использования этих карт, и чтобы никто их не умыкнул себе :) Игра от этого не теряет в своей работоспособности :)

Далее объясняю концепт работы игры, который возможно будет непонятен.

В игре используются массивы kolodaA1 – kolodaA4, kolodaK1 – kolodaK7, koloda, koloda0, koloda1.
В них хранятся ЧИСЛА!

Клипы карт хранятся в объекте game.  Примеры:
game.b1 –  это клип с бубновой (b) картой 1 (А – туз)
game.c7 –  это клип с червовой (с) картой 7 (7)
game.p3 –  это клип с пиковой (p) картой 3 (3)
game.k12 – это клип с крестовой (k) картой 12  (дама)

У каждого клипа с картой есть параметр name, по которому можно обращаться к карте. Нумерация карт от 1 до 52. Примеры:

game.b1.name  = 1 – бубновый туз имеет имя – 1
game.c7.name  = 20 – червовая семёрка имеет имя – 20
game.p3.name  = 42 – пиковая тройка имеет имя – 42
game.k12.name = 38 – крестовая дама имеет имя – 38

Принцип игры следующий: в массивах мы храним числа, которые соответствуют именам клипов с картами. И если написать следующий код:

переменная number – примет значение, которое содержит ячейка с индексом 5 в массиве koloda. Допустим там значение – цифра 38,
а переменная karta – это будет сам мувиклип с картой (крестовой дамой в случае цифры 38), полученный по переменной number, с помощью команды .getChildByName(String(number));

Итого, принцип игры – перекладывание ЦИФР из одних массивов в другие. :) Сами карты по массивам не перемещаются, только их имена, которые есть цифры.

Остальное думаю будет понятно из 3 частей видео по созданию игры в Adobe Flash CS 5 КОСЫНКА “Цианид и счастье” с помощью  Action Script 3.0 :)

Часть 1/3:
♦ Создание игрового поля,
♦ создание клипов 4 мастей карт,
♦ создание объекта game для хранения клипов карт,  
♦ создание колоды со случайными картами,  
♦ создание массивов для хранения чисел,
♦ создание анимации раскладки карт на игровом поле в начале игры.

Часть 2/3:
♣ Создание кнопки для перебора карт из колоды в колоду1, 
♣ Программирование кнопки перебора карт из колоды в колоду1 для событий мыши, 
♣ Создание анимации движения всех карт из колоду1 в колоду,  
♣ Программирование действий при нажатии кнопки мыши по какой-либо карте,
♣ Программирование действий при отжатии кнопки мыши над какой-либо картой,
♣ Код размещение карт в какой-либо колоде А или К,
♣ Создание анимации движения поднятых карт на место откуда они были подняты,
♣ Создание функции для движения поднятых карт за картой, которая движется за курсором.

Часть 3/3:
♥ Создание клипа с картинками состояний кнопки звука,
♥ Создание кнопки управления звуком,
♥ Создание функции управления звуком,
♥ Создание клипа со звуками,
♥ Размещение звуком в игре,
♥ Создание кнопки рестарта игры,
♥ Создание функции рестарта игры,
♠ Исправление глюков и ошибок,
♠ Создание и управление анимацией при выигрыше игры,
♠ Создание анимации салюта,
♠ Добавление звуков салюта в игру.

Исходник: yadi.sk/d/RnCz_bNsL9hJk (10 МБ)
Код ActionScript 3.0 из урока:

Всё подробно рассказано в видео :) Если будут какие-либо вопросы, пишите в комментариях к видео (желательно не на ютюб, там я читаю их редко :) ). Надеюсь, данный урок по созданию игры косынка в action script 3.0 в программе adobe flash, помог вам понять некоторые неизвестные аспекты создания игр. :) Следующей игрой скорее всего будет doodle jump :)

p.s. Долго ж я её собирал… Недели 2 с рисованием и звуками, потом решил для урока собрать её заново, т.к. по строчкам её не объяснишь.. Итого записал более 8 часов видео сборки игры, потом перемонтировал до 4 часов, озвучил эти 4 часа, потом перемонтировал звук до минимального внятного времени – 1 часа, и потом перемонтировал видео под этот звук. :) За время монтажа мог бы собрать ещё 2 сторонних игры. :)

Комментарии
  1. Дима

    Труд титанический. Спасибище! Очень познавательно. Самые крутые уроки по ActionScript 3, которые приходилось смотреть.

  2. Михаил

    Привет, Code For Games! Я получил достаточно много информации из твоих видеороликов. Очень занятно и интересно! Благодарствую.

    Но до сих пор я некоторые загогулины, запятые, точки и т.п. Не понимаю.
    Ну и у меня к тебе вопрос и несколько вопросов-предложений:

    Начнём с вопроса. Я вот например as2 не знаю… начала сразу с as3, что бы ты мне посоветовал для изучения… так скажем “основ основы”?

    Я вот смотрю… сделал ты раз игру… два… а меню? Может научишь нас, юных гениев создавать меню для игр?

    И ещё, будет ли опубликована информация о заказе игры? И вообще, будешь ли ты создавать приложение за некую сумму?

    P.S. Я пропустил несколько роликов, поэтому ответ на мои вопросы возможно уже был. Заранее спасибо!

    • admin

      Посоветовал бы начинать с ActionScript 3. От нуля до ООП Очень всё доступно рассказано, что да как. Либо ищешь в интернете/магазинах книги, и учишь по ним:) Либо, те же простые видеоуроки, наверняка кто-то их делает.
      Я вообще не пойму, в чём сложность сделать меню? Как можно собрать игру и не уметь сделать меню? :D Я дудл джамп собираю. Там и меню есть, и сохранения, и рекорды, и настройки. Но я как-то сейчас неспехом всё делаю. Отдыхаю после больницы :)
      Под заказ я игр сейчас не делаю. Раньше делал, но это невыгодно. Сделать на fgl выгоднее в 3-50 раз :)

      • Михаил

        Огромное спасибо за ответ! С нетерпением буду ждать Дудла!

        С наилучшеми пожеланиями!

        • admin

          я бы его уже сделал, но не могу понять причины тормозов флеша :\ Причём, не у одного меня такая проблема. Вот делаешь просто движение объекта на сцене, а появляются рывки. И не важно что двигаешь. Мувики, спрайты, шейпы. Всё равно. Иногда плавно, иногда рывки. То ли от того, что координаты меняются с одним десятичным знаком, то ли ещё что. Частота кадров 60, а рывки есть… И как их убрать ума не дам. as2.0 был прекрасен. Никаких рывков тебе. А тут уж и не знаю что придумать. Ручной рендер впихнуть что ли.. Но это чёрти что получится. Тогда классы надо лепить, а не хочется. Да и сомневаюсь, что будет толк. Во многих играх вижу такие задержки, но много где они не бросаются в глаза, ибо на них и не смотришь, а в дудле движение – это основа всего и поэтому бросается в глаза. Задержки маленькие, но есть. Но не всегда.

          Хах, ещё нашёл 1 глюк во флеше… Ну это просто пипец… Он неправильно складывает дробные числа…
          если к 5 прибавить 0.2, будет 5.2,
          потом к 5.2 прибавить 0.2, получится 5.4,
          потом к 5.4 прибавить 0.2, получится 5.6000000000000005
          потом 5.800000000000001 и т.д.
          что за идиотизм…

          А вот as2 складывает всё прекрасно. Что и следовало ожидать. И рывков там нет никаких.

          В дудле постоянно складываются дроби, и получаются такие числа, а т.к. координаты могут быть только с 1 десятичным знаком, возможно это и даёт рывки, за счёт округления координат в ту или иную сторону, но не факт. Скорее всего забью на это, и доделаю игру так.:)

          • vitalik

            Я не знаю в чем здесь дело , но попробуй загрузить игру на любой сайт , я тоже сталкивался с такой проблемой ,шар
            очень криво двигался я думал что что-то не так написал, это проблемы SWF формата (я так считаю)
            но загрузил в вконтакте вот – vk.com/app3646393_103132235 (это не реклама :) )
            и шар стал очень плавно двигаться .
            или попробуй опубликовать в AIR FOR DESKTOP .

            Это поможет тебе понять твоя ли это ошибка.

          • admin

            хм, странно. Я запустил приложение твоё и у меня оочень всё дёрганно движется. Никакой плавности нет :(

        • Дмитрий

          Вот статья: http://habrahabr.ru/post/112953/

          В пункте 4.3 как раз идет вывод о том, почему 0.2 + 0.2 в одинарной точности не дадут в сумме 0.4
          Спасибо Андрею Крисюку за ссылку (https://vk.com/id6699709).

          • admin

            Просто это кривой as 3.0 :) в macromedia ребята были поумнее и в AS 2.0 “0.2 + 0.2 = 0.4″, а тут черти что, только лишние строки кода по округлению, отбрасывания лишней части и т.д. Отсюда и неправильные рассчеты и неверное перемещение объектов. Причем интересно, если в as 3.0 сложить “0.2 + 0.2 = 0.4″, “0.2 + 0.4 = 0.6″, а вот “0.2 + 0.2 + 0.2 = 0.600000000000000000000001″ или около того… Почему-то первое действие с числом он делает правильно.

      • Сергей

        А когда же будет дудл джамп ?

        • admin

          когда будет, тогда будет :D не знаю. :) я тут всё возился с глюками as3. Мне не нравится как он двигает плиты в дудле. Вроде и растровый ручной рендер не хочется лепить. Там мало совсем клипов. По 20-30 на сцене. Да и fps не проседает, всегда практически 60, бывает до 59.9 спускается. А вот движение мне не нравится. И координаты сделал целочисленные. И преобразование в битмапы. Сейчас вроде более плавно всё. :) В общем, как будет так будет :) Там осталось всего ничего. :) Но ещё записывать видеоурок… и монтировать… а ещё есть жизнь за пределами квартиры :)

          • Сергей

            Да у меня тоже такая проблема .Оно вроде бы движется адекватно ,но при более быстром движение начинает как бы блымать немного.Это довольно неприятно смотриться ,но как исправить не знаю

  3. Сергей

    И кстати еще хотел задать один вопрос.Я хотел бы сделать приложение ,не сложное совсем .Суть в том что герой (квадрат допустим)уклоняется от небольших прямоугольных колон которые движутся по вертикали .Как можно сделать так чтобы колоны ускорялись и при этом бесконечно рандомно появлялись заново

    • admin

      да тут даже непонятно в чем дело. Бывает дудл прыгает и всё шикарно плавно! А бывает с мелкими рывками. И ума не дам от чего… FPS на месте, даже когда отключаешь добавление новых плит (0 добавляемой нагрузки), всё равно одно и тоже. И памяти кушает всего 25 Мб. Хотя по факту, это наверно ещё один косяк as3. Даже если тупо нарисовать шарик, или загрузить картинку, и написать код, чтобы он в каждом кадре двигал объект куда-то, то каждый 5-6 кадр маленькие рывки есть. Чего никогда не было в as2. Да и нету. Так и хочется на as2 сделать, т.к. он просто лучше работает. В Macromedia народ был поумнее, чем в adobe.

      Вопрос по приложению: чтобы колонны ускорялись при падении? Или чтобы каждая новая колонна просто двигалась быстрее, чем прошлые?

    • admin

      Если я правильно понял, то вот.
      http://yadi.sk/d/IVgbBEahNFp3U

      • Сергей

        Да именно так.Ты еще и скрипт расписал что да как .Спасибо большое

      • Сергей

        Я кстати сделал управление мышью ,но не знаю как сделать так что бы обьект следил за курсором мышы и немного смещался вправо или влево

        • admin

          если бы я толком понял, что ты хочешь, я бы подсказал. Навскидку: если объект правее середины сцены, то
          object.x = mouseX + 10;
          если левее, то
          object.x = mouseX – 10;

  4. Сергей

    Извиняюсь за еще один странный вопрос ,но когда я пытаюсь реализовать движение обьекта вправо то получается не правильно именно когда я пользуюсь методом addChild .Обьяснить по человечески я все равно не смогу поэтому вот ссылка на исходник http://yadi.sk/d/54fLhHrSPZHpZ .Там все сразу видно

  5. Сергей

    Вот правильная ссылка http://yadi.sk/d/lCFt0OSyPZLNz

    • admin

      function fire () {
      var pulya:MovieClip = new pulya_mc();
      pulya.x = 150;
      pulya.y =200;
      pulya.skorost = 5;
      addChild(pulya);
      pulya.addEventListener(Event.ENTER_FRAME, polet_puli);
      }
      fire ();
      function polet_puli (e:Event) {
      var pulya:MovieClip = e.currentTarget as MovieClip;
      pulya.x += pulya.skorost;
      }

  6. Alexandrn

    Присоединяюсь с благодарностями за титанический труд автора! Браво!
    У меня вопрос.
    Как правильно написать код для: есть разные кадры на главной сцене (к примеру 8, 15, 35, 89 (разбросанные) или с 4 по 8 (по порядку)). Требуется чтобы при нажатии кнопки сработал рандомный переход в один из кадров данной группы.
    gotoAndPlay() random ???
    Спасибо!

    • admin

      благодарю :) Держи:

      import flash.events.MouseEvent;
      stop();
      // кадры, в которые рандомно скачет.
      var frames:Array = [4,5,6,7,8];
      //var frames2:Array = [8, 15, 35, 89]
      stage.addEventListener(MouseEvent.CLICK, goFrame);
      function goFrame (e:MouseEvent) {
      var rand = Math.floor(Math.random()*(frames.length));
      trace (rand);
      gotoAndStop(frames[rand]);
      }

      http://yadi.sk/d/RjBEiwgzQdPQQ

      • Alexandrn

        Спасибо, дружище!
        Попробую сегодня подставлять код.
        Я смотрю, вы в 5.5 все исходники делаете. То-то мой флеш cs5 не кушает. А если поставить 6 версии адобе флеш, будут созданные на cs5.5 открываться в 6-ке?

        • admin

          я делаю в 5.5 да. Но там можно сохранить и в 5, и в 4. В 6 скорее всего открываются 4,5,6.

  7. Alexandrn

    Да, отлично, работает всё ок!
    А как вот правильно написать скрипт для того же, но без кнопки: (есть разные кадры на главной сцене (к примеру 15, 35, 89 (разбросанные) ). Требуется чтобы сработал рандомный переход из какого-нибудь (например 11) кадра в анимации в один из кадров данной группы.
    Что в строке stage.addEventListener(MouseEvent.CLICK, goFrame); вместо MouseEvent.CLICK писать?
    Спасибо!

  8. Alexandrn

    Немножко не так. Это я не правильно объяснил.
    У меня проигрывается анимация и в момент, когда нужно к примеру чтоб сработала одна из нескольких возможных концовок-анимаций. Как бы мы шли-шли без остановки по одной дороге, и вдруг разветвление в три разные стороны. Наугад пойдём по любой из них и назад не вернёмся. Кроме рестарта. )))
    А вроде элементарные вещи, а я пока туговато…
    Если такой скриптик со stop(); то так и стоим перед развилкой, задумавшись куда пойти.
    А если без стоп, то просто проходит мимо по прямой не замечая, что тут есть какой-то код.)))

  9. Alexandrn

    Извини за сумбур.
    Уже разобрался. Надо было просто убрать функцию кнопки.

    var frames:Array = [578, 585];
    //btn.addEventListener(MouseEvent.CLICK, btnF);
    //function btnF (e:MouseEvent) {
    var rand = Math.floor(Math.random()*(frames.length));
    trace (rand);
    gotoAndPlay(frames[rand]);

  10. vitalik

    Какими языками программирования владеешь ты ?

    • admin

      Action Script 2.0, Action Script 3.0, MySQL 4, MQL4 (дада, именно он :) ). Ну ещё Delphi, OpenGL (если их можно отнести к языкам..)

  11. Кирилл

    А ты не мог бы сюда скинуть исходник дудл джамп.Я был бы очень благодарен.У меня есть некоторые не понятки с кодом и я уверен ,что исходник дудла все решит

  12. vitalik

    создай видео урок о том как сохранять значения переменных после закрытия приложения

    • admin

      хорошо) как доделаю ремонт, так сразу :) (сохранения есть в дудле (рекорды), поэтому будет урок по сохранкам там.

  13. Ben

    Доброго времени суток Admin.
    Занимаюсь во флеше,ваши уроки очень полезны, многому научился.
    И у меня есть вопрос, нет ли подобной среды для разработки игр для телефонов, ну то есть под Android, Windows Phone, и даже может IOS? Или если создать файл AIR 3.2 for Android, то это вполне сойдет за игру под Андройд?
    То есть само собой, среды то есть, тот же самый VS XNA(C#) для Windows Phone, но я выбрал flash, потому что здесь очень удобно рисовать, чего не скажешь о других средах… Вот, хотелось бы узнать, есть ли платформа с таким же удобным интерфейсом и гибким графическим редактированием, но для мобильных приложений?

    • admin

      Привет) Есть такая среда – Unity 3D. :)
      AIR вполне подходит, но он сложный. Многие разрабы портируют свои игры на мобилки именно через Air.
      Если тебе нравится именно рисовать во флеше, то можешь рисовать и сохранять картинки отдельно в виде swc-библиотек, или png картинок, а саму играу собирать в сторонней программе. Многие так и делают. Рисуют в фотошопе или флеше, сохраняют в swc-библиотеку и собирают в Flash Develop или Flash Builder. Но никто не мешает собирать в чём-то другом. Флеш просто очень простой для таких дел :) Но если собрать игру в левой проге, то обязательно использование классов :)
      Мой совет – Unity :) Сам на неё соскачу скоро)) Рисовать во флеш/фотошоп, а собирать там. Правда очень мало уроков и документации на русском :\

      • Ben

        О, спасибо, весьма информативно:)

      • Кирилл

        Так значит в Uniti 3d тоже можно програмировать на As3 ?

        • admin

          нет. Unity – это “среда для разработки игр для телефонов, ну то есть под Android, Windows Phone, и даже может IOS”. Таr же Pc, Wii, PlayStation 3 и Xbox 360, Xbox One.
          Сделал игру и она сразу подходит для всех устройств :) Вот в чём радость этой программы. А язык там свой. Т.е. нарисовать графику можно во флеше, запихать это в юнити и сделать игру для денди :D классно :) На air врят ли такое возможно.
          К тому же смотрел конференцию по юнити, там один из работников сказал что собираются сделать работу приложений юнити без установки разрешений :) Т.е. будет не нужно устанавливать unity-плеер, чтобы открывать приложения, а прям напрямую в браузере как обычные страницы :) Ну и ещё там с недавнего времени обалденный 2D функционал. И теперь 2D-игрули делаются легко :) И цены там нормальные. В общем, одни плюсы :)

          • Кирилл

            Но я вроде выше читал ,что по юнити мало уроков

          • Кирилл

            Да и кстати,что за язык такой на юнити ?Он сложнее чем As 3 ?

        • admin

          в этом главная проблема! оочень мало уроков на русском.
          “Движок поддерживает три сценарных языка: C#, JavaScript (модификация), Boo (диалект Python). Редактор поддерживает DirectX 11 и HDR. Расчёты физики производит физический движок PhysX от nVidia.”

  14. Кирилл

    Все понятно

    • admin

      всё ясно :D

      • Кирилл

        Спасибо большое.Я тоже жду урока по дудл джамп.Надеюсь уже скоро

        • Кирилл

          И на самом деле дудл джамп работает очень плавно сложно оторваться от процесса игры

          • admin

            хм. У меня по-разному работает. Что в плеере на компе, что в плеере в браузере. :\

      • Кирилл

        Кстати у меня в исходнике дудла выдает ошибку такую ” Обращение несуществующего свойства SWFProfiler.
        ” Я так понимаю эта класса каакого то не хватает или бибиотеки

        • admin

          точно, забыл. Закомментируй добавление этого класса.:) Это я прилепил чтобы отслеживать fps игры.

          • Кирилл

            Ну я так и сделал.Кстати в игре еще рестрта не хватает .Я просто сам голову ломаю как сделать старт и рестарт.Можешь помочь вот исходник https://yadi.sk/d/JPi0I_G0XEBZF

          • Кирилл

            Чтобы допустим рестарт появлялся при столкновении

        • admin

          А чего его делать-то? В пинг-понге и косынке он есть. Принцип таков: удаляешь все обработчики событий и объекты на сцене.
          Я ещё не устанавливал Adobe, у меня тут другие дела сейчас…

          • Кирилл

            Просто получается такая проблема ,что когда я пишу removeChild (obj); Удаляется

  15. Кирилл

    Короче не знаю как обьяснить

  16. Кирилл

    Я хочу чтобы после столкновения (hitTestObject) все обьекты перемещались в одну точку .Я пишу так if (hero.hitTestObject(obj)){ obj.x = 600},но вместо этого только один перемещается из всех тот с которым столкнулся герой,а остальные никак не реагируют .Я понимаю трудно что то понять из того что я написал,но вдруг у тебя хватит на такое сил и смекалки

    • admin

      понятно что один – который obj. Тебе надо либо для всех объектов сделать обработчик событий, который переместит каждый объект, либо делать цикл для всех объектов, где obj = “obj”+i, но врят ли у тебя с разными названиями. Скорее всего они у тебя в массиве все, так что цикл от 0 до длины массива минус один. Типа такого.
      for (var i:uint =0; i<= massiv.lendth-1; i++) {
      if (hero.hitTestObject(massiv[i]) && !stolknovenie){
      for (var j:uint =0; j<= massiv.lendth-1; j++) {
      massiv[j].x = 600;
      stolknovenie = true;
      }
      }
      }

  17. Кирилл

    Я не совсем понимаю зачем нужно писать stolknovenie = true

    • admin

      я не знаю как расположены у тебя все эти объекты и где твой персонаж относительно точки 600. Это сделано для того, чтобы если персонаж столкнулся с чем-то, то в других кадрах (да и в этом тоже) больше ни с чем не сталкивался. А так можешь сделать всё без переменной stolknovenie.:)

      • Кирилл

        А понял спасибо большое.Я бы сам врядли додумался

      • Кирилл

        А ты кстати после того как курс по As 3 освоил уже сразу начал игры создавать или что то еще изучал ?

        • admin

          и их раньше делал на as2, который поудобнее будет для игр на самом деле.. но это лично для меня:) Для любителей классов конечно as3 удобнее.

          • Кирилл

            А классы тоже обязательно изучать ?Я если честно не совсем понимаю для чего они

          • Кирилл

            Я кстати освоил курс по As3 но пока у меня не получается написать именно такой код для игры ,чтобы все работало как я хочу.Вроде все понятно и ошибок нет,но программа работает не так как нужно,все получается с багами и т.д не выходит даже дописать ее до конца .Возможно практики больше нужно

          • Кирилл

            Возможно можно пройти еще каие нибудь курсы чтобы понять As3 более глубоко

          • admin

            Скачай/купи книгу Колина Мука “ActionScript 3.0 для Flash. Подробное руководство.”
            Узнаешь его подробнее некуда :)

          • Кирилл

            А разве в курсе по As3 рассказывается не тоже самое ?

          • admin

            не тоже самое. В книге всё. в ней больше 600 страниц. Там столько мути, что я прекратил читать где-то на 100 странице. Да и там всё на классах…
            Уверенность придёт с практикой. Делай сначала простые вещи, чтобы они работали. А эффективность очень сложная вещь. Тут столько фишек по оптимизации.. Доходит дело даже в использовании только плюсов вместо умножить и минусов. Загонов много короче.
            А вот курс по as3 обалденно всё рассказывает и именно то, что нужно. Если начнёшь читать Мука, поймёшь о чём я :D

          • Кирилл

            Хотелось бы еще не только лучше узнать язык ,но еще и уверенно и эфективно его использовать

          • Кирилл

            Ну да я тоже не любитель по книгам что то осваивать еще и такую не легкую вещь как програмирование …

          • Кирилл

            Кстати ты этот курс не смотрел http://disk.easyflash.org/ ?

          • admin

            не вижу в нём смысла. Посмотри что там внутри: на красном фоне где кубик крутится там расписано что внутри. Там маленькая часть от того курса. Простые вещи типа start(), stop(), trace().. Тут на анимацию акцент, а не программирование.

          • Кирилл

            А не знаешь где можно скачать исходники игр на as3 ?

          • admin

            Нигде :) разве что если разработчик тоже ведёт блог, аля Антон Карлов. У него, кстати и посмотри уроков ;) Как раз изучишь классы :) http://www.ant-karlov.ru/ И ещё советую вот тут полазить – http://xitri.com/

          • Кирилл

            А ты Adobe установил уже ?

          • admin

            неа)

          • Кирилл

            Жаль.Я просто сегодня написал первое подобие на игру .Там меню есть рестарт и набор очков.Только я не уверен рацинально ли код написан.Скорее всего можно сделать все это и куда легче

          • admin

            тебе рациональность сейчас ни к чему. Вот когда игра весит больше 50 Мб, там куча графики, и много жрёт памяти, вот тут уже надо возиться с оптимизацией. А так в начале главное чтобы правильно работало! :)

          • Кирилл

            Ну спасибо теперь я спокоен.Но я пока совсем не знаю как сохранять рекорд как бы сказать на всегда …

          • Кирилл

            Можешь рассказать хотя бы принцип того как это сделать я может сам потом додумаю

          • admin

            в дудле у меня рекорды сделаны по такому принципу – http://as3coder.blogspot.ru/2010/08/sharedobject.html
            Но вот не знаю будут ли сохраняться результаты при перемещении игры. Должны по идее. Можно сделать ещё сложнее, чтобы данные записывались в txt-файл или xml, а при запуске считывались оттуда. Но зачем такие сложности…

          • Кирилл

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

          • admin

            за 1,5 часа и таймер и рекорды О_о Даже я с такой скоростью не смогу сделать что-то новое:) Я обычно смотрю сначала что и как работает. Проверяю что мне нужно, а потом вставляю. А уже в следующий раз почти на автомате пишу, если не помню, то смотрю как делал раньше.
            А когда начинал было так же. Далёкий, эдак 2004, год где-то. Просто я ещё учился сам по стандартным примерам флешек к программе.

          • Кирилл

            Вот сейчас решил добавить сохранение рекордов.Статью я почитал ,но как применить на практике так и не понял.Как примерно должен выглядеть скрипт если у меня игра на время.Рекорд это кол во секунд которое ты продержался .И не пойму как же мне его сохранить ,а потом еще и на сцену добавить

          • admin

            а как ты хочешь использовать рекорды? Они должны отображать в виде таблицы, или нарисованы где-то, или сравниваться в процессе игры, или при проигрыше показываться что-то? конкретно напиши. Я завтра уже поставлю адобовские проги :)

          • Кирилл

            Чтобы при проигрыше выводился самый лучший результат

        • admin

          необязательно. Но практически все делают игры через них. Чтобы создать какой-то объект или функцию делают класс в котором описаны методы и свойства, которые по сути и есть переменные и функции. Короче что-то типа шаблона, который применяется для однотипных задач. Допустим у тебя много кирпичей, который ведут себя одинаково, ты пишешь класс, в котором функция описывающая поведение 1 кирпича, и применяешь этот класс ко всем кирпичам.
          Опять же, я тоже самое делаю без классов, мне так удобнее и меньше писанины :) Но это лично мне :)

      • Кирилл

        Спасибо.Вроде классные сайты

  18. Кирилл

    Вроде такие елементарные вещи ,а сделать так чтобы все работало как нужно не выходит

    • Кирилл

      Можно сказать точно так же как в дудлере только вместо очков у меня время

      • admin

        в дудлере совсем не так! Там есть и таблица рекордов, и использование рекордов в процессе игры, если ты прыгаешь выше какого-то из 10 рекордов, то в игре есть линия с именем этого рекорда, потом при проигрыше устанавливается имя нового рекорда и удаляется 11 рекорд, если он есть. Так же эти линии разного цвета. Первый рекорд синий по-моему, а остальные красные.

        • Кирилл

          Это круто если ты наконец установишь адоб.Наконец мне кто то сможет помогать

  19. Кирилл

    Хотя не удобно изучать as когда самолеты над башкой и взрывы рядом

  20. Кирилл

    Да круто этот пример именно то что нужно было

  21. Кирилл

    Я сделал в своей игре такой набор очков как в твоем исходнике,но ни в какую не выходит сделать чтобы было как в секундомере.Слева часы в середине минуты справа секунды .В моем исходника слева вверху такой секундомер ,но у меня никак не выходит сделать так чтобы он сохранялся как в примере .Вот исходник https://yadi.sk/d/QqOtDCrCYxVuc

  22. vitalik

    Как передавать значения переменных по сети ?

    кстати очень полезные уроки

  23. vitalik

    Сделай видеоурок о создание игры типа марио !!!

    • admin

      мне сейчас не до уроков… я даже свою игру сейчас не делаю, некогда.
      И потом, марио сделать очень легко, даже то, что есть в уроках достаточно для этого.
      Фактически вот http://xitri.com/2009/07/13/scrolling_background_except_hero.html – Марио, только чуток код в as3 переделать.
      Но я бы не стал делать марио, и вообще любой раннер, просто так во флеше. Потому что жутко раздражает меня дёргание анимации. Даже дудл забросил из-за этого.
      Единственный выход сделать плавную анимацию – использовать Starling фреймворк на основе Stage3D. Но я его ещё не разбирал, так что… можешь заняться этим сам))

  24. vitalik

    Где ты ????????????

  25. Alexandrn

    Привет всем!!!
    Давно не писал тебе, дружище и ничего не спрашивал. Хотя на твои уроки захожу, поглядываю. Теж времени не хватает АСом заниматься. Иногда лепил анимацию. И вот дошёл до точки. Либо двигаться дальше, либо смотреть слайдшоу.
    Вопрос про вывод счёта в текстовом табло на экран. В мувиклипах всё работает, а вот, если забросить в классы, всё складывает и отнимает, только на табло не выводит результат. Где я накосячил. Вот исходники

    https://yadi.sk/d/7HQOHbyzd2Br9
    https://yadi.sk/d/sanutoDid2BrB

    И как оформить команду, чтоб при счёте =0 перестал вычитать (то есть не было отрицательных чисел)?
    Спасибо, тебе (Не знаю как звати) админ… )))

    • admin

      Привет, Саня :-) Наконец-то я установил флеш xD теперь поставил СС, посмотрим как он :)
      Не заметил использования классов у тебя :D Накосячил ты в мувике с именем schet в библиотеке.
      // в мувике schet надо было текст делать динамическим и назвать как-то и его уже изменять свойством .text, а не сам мувик.
      https://yadi.sk/d/aYBtKqVSd6ogR
      Для чего файл scoreboard as0.3 вообще не пойму, там же ничего нет.
      P.s. my name is Евгений, если что :D

  26. Alexandrn

    Спасибо за быстрый ответ, Женя ))
    Так, погоди, что-то я совсем запутался. Если галочку в Simbol Properties ставим Export for ActionScript, это ещё не есть использование классов? А классы, это когда отдельные файлы со скриптами подключаем к основному файлу?
    Да, действительно файл scoreboard as0.3 совсем пустой закинул. Там табло, только в кадрах и всё работало.
    А на последний вопрос в предыдущем комменте: “как описать команду, чтоб при счёте =0 перестал вычитать (то есть не было отрицательных чисел)?” ответишь?
    Спасибо!!!
    пс: Помониторил я так игровую индустрию, в почёте нынче (да и пожалуй всегда было) РПГ игры, и рейтинг высокий и желающих играть миллионы. Вот и призадумался, а может замутит…(идей то много, реализации- нуль).

    • admin

      Знаешь, обычно считается, что классы – это то, что пишется в отдельных файлах, и приложение работает через них, а в кадрах ничего не пишется вообще.

      Про отрицательные числа смотри в файле, я там сделал. Просто добавляешь условие, которое тебе нужно, чтобы не получалось отрицательное число. Какое из условий интересует именно тебя – я не знаю, я сделал один из вариантов.:)

      В почёте нынче онлайн игры. :) Честно сказать, мне сейчас не нравятся практически все игры. Самой любимой за последние годы, была и остаётся, игра Borderlands 1. :-)

  27. vitalik

    когда новые уроки будут ???

    • admin

      Не знаю. Если и будут, то сложные и платные. Просто сейчас не вижу смысла тратить кучу времени на создание игры, её пересоздание с записью видео, озвучку, монтаж. Потрачу месяц-два-три, и посмотрит человек 300. Причём, из этого всего, на первое создание игры уходит лишь 30% времени. Поэтому, если будут ещё уроки, то будут с небольшой платой. Смотря какие конечно.. Если же сделаю урок по игре на движке Starling, то это уже будет не символическая плата. Ибо эта хрень конкретная :D Как-то вот так :)

  28. Alexandrn

    Понял тебя, Женя. Всё классно и доходчиво объясняешь. ))
    Единственное НО- твой файл на моём 5 флеше не открывается. ))

    Онлайн игры само собой в почёте, я имел ввиду жанр этих онлайн. Абсолютно верно, игр тьма, а поиграть не в чего. Ну если такого плана как Borderlands, то моя любимая игра- старенький Dino Crisis 1 (на дримкасте играл по юности).
    Ну и естесно, Сталкер (чистое небо особенно тронуло).

    • admin

      Я не могу из СС сохранить никак, кроме как просто fla, там вообще выбора версий нет. Тогда вот так :) просто скопируй и вставь на место своего кода.
      В мувике schet динамическое текстовое поле должно называться cash.

      var mc_schet:MovieClip = new schet();
      mc_schet.x = +265;
      mc_schet.y = +120;
      addChild(mc_schet);
      var money = 0;
      var m = mc_schet.cash;
      // в мувике schet надо было текст делать динамическим и назвать как-то и его уже изменять, а не сам мувик
      m.text = money + “”;
      upper.addEventListener(MouseEvent.CLICK, upperF);
      function upperF (e:MouseEvent):void {
      money += 2;
      m.text = money + “”;
      trace (money);
      }
      down.addEventListener(MouseEvent.CLICK, downF);
      function downF (e:MouseEvent):void {
      money -= 3;
      if (money<0) { money = 0; }
      // если вычитаем 3 и меньше 0, то ставим 0
      m.text = money + “”;
      trace (money);
      }
      function ef (e:Event) {
      money ();
      }

      • Alexandrn

        Привет!
        Женя, наверно один из вариантов условия при отрицательных числах, которые ты указал в скрипте, есть такое- когда например: на табло имеем 3, а нам нужно вычесть 5, но вычитать нам табло не позволит, и останется со своей 3-кой, а мы- с 5-кой. (т.е. если на табло число меньше, чем мы хотим вычесть- вычитать до 0 не будем, вообще не будем вычитать ))))). Как записать правильно в скрипте такое условие?
        Спасибо!!!
        п.с. А видео-уроки по html и PHP -не ты делал, Жень?

        • admin

          тогда вот такой вариант:
          if (money<0) { money += 5; }

          Привет) Уроки по html и PHP я не делал. :)

          • Alexandrn

            Благодарю, друг! Ааа, ясно. Это просто тёзка твой (Евгений) парень с уроками про html и PHP и СSS. Видимо ребята с этим именем прирождённые программисты! )))))

        • admin

          Врят ли :) Я сам шарю, и в html, и немного в php, mysql, css, mql4, но прирожденные программисты это Артемий, Павел и Марк :D Я думаю ты поймёшь о ком это ;)

  29. Alexandrn

    Ура! Заработало ))
    Зачем только флеш выдаёт сообщение о шрифтах во время компиляции:
    Fonts should be embedded for any text that may be edited at runtime, other than text with the “Use Device Fonts” setting. Use the Text > Font Embedding command to embed fonts. (Шрифты должны быть вложены для любого текста, который, возможно, редактируется во времени выполнения, кроме текста с “Пользоваться Шрифтами Устройства”, устанавливающий. Пользуйтесь Текстом > Команда Встраивания Шрифта к embed шрифтам.)
    Я для того засунул текст в мувик, а мувик связал linkage со скриптом, а не задал имя мувику напрямую, чтоб табло работало в любых кадрах (с проигрыванием анимации по кадрам) и при этом результат не сбрасывался. А то, получается, что если табло-с именем, то при проигрывании анимации в случае перескока-возврата ползуна к ранним кадрам счёт скидывается.
    Может можно влиять на табло из различных мувиком, разбросанных в разных кадрах и разных вложениях в др. мувики.
    Запутал, ага? ))
    А как текст делать динамическим?
    И как сделать так, чтоб на самой флешке табло не было кликабельным (это когда черта вертикальная в поле начинает мигать при клике на окно, словно счас буду водить данные пароли ))))) Да и вообще любая надпись текстовая при проигрывании флешки всегда так кликается.
    Спасибо, Женя.

    • admin

      1. выдели текстовое поле, и в свойствах в anti-alias поставь “Use Device Fonts”, тогда не будет ошибки, либо добавь шрифт который используешь кнопкой Embed… (много надо тыкать, но да ладно).
      2. Чтобы работало в любых кадрах можно было и не совать в мувик. Просто сделать текстовое поле в отдельном слое чтобы был только 1 ключевой кадр, а остальные просто кадры, и значение меняться от кадра к кадру не будет.
      3. Динамический текст так же ставиться в свойствах. Текст бывает статический, динамический и ввод данных. Если есть имя текстового поля cash или др, то он динамический либо для ввода.
      4. Можно влиять на табло из различных мувиков и вложений. А надо ли? Только запутает.
      5. Чтобы табло не было кликабельным о5 же в свойствах отожми букву [Т] в черном квадрате (Selectable).

      У тебя такие детские вопросы, хорошо бы тебе почитать что-нибудь по основам флеш :)

      • Alexandrn

        Читал, но не всё бывает понятно. Ни каждый может доходчиво разъяснить что как и где, как ты.
        Огромнейшее СПАСИБО, Жень!

        • admin

          На здоровье :) Благодарствую)

  30. Mora

    Аааа, здравствуйте Евгений! Ваши уроки для меня просто спасительное чудо какое-то)) Мне необходимо составить мини-игру, а из знакомых сред подходит только флеш, а с АS3 бида полнейшая, а сроки жмут во всех неприличных местах.. Поэтому Вам огромное спасибо и за уроки, и за косынку, они мне очень помогают, но само собой бьюсь об стенки. Лоб крепкий, при наличии времени и в тупике ход бы проломила-таки (не проломила, так прогрызла), но жмёт уже отчаянно.
    Пытаюсь разобраться с “прилипанием” объекта по необходимым координатам. Т.е. в одной части поля расположены клетки 4х9, как мувики, в другой фигуры, которые надо перемещать на эти клетки. Ну само собой надо так сделать, чтобы если фигура была дропнута в области клетки, она “прилипла” центр к центру. Если в другой части поля, то встала на своё исходное место. Возврат на исходную работает чудесно, а вот прилипание сцуко сначала кидало фигуры в первую ячейку, а когда исправила код (ну, как я думала, что исправила))), теперь липнет всё к самой последней.
    Как я делала на событие отжатия: отлавливала и сравнивала координаты мувика, уже три раза переписывала, вот в последнем сравнение разделила на 9 строк по y в пределах высоты каждой клетки (они вплотную друг к другу), а внутри уже сравнивала по х в пределах ширины. Понимаю, что логика у меня страдает от садистских манипуляций, уже устала и идей нет как исправить. Можете мне помочь? (а ведь это только начало моего пути х_х дальше хуже будет, от простого к сложному)
    На всяк случай: http://www.mediafire.com/download/frm3ztgfth4fzbu/The_Elder_ScrollL.fla
    Вот, пока с этим не разберусь, не могу идти дальше.

    • admin

      Привет, девушка из Sadrid Mora :) Мда, ну и поворот. Я думал as3 сошёл с ума…
      Ан нет. Не ожидал я такой ошибки просто…
      • Оставил в коде прилипания только:
      if (blok.y< =1 || blok.y>568,5)
      {
      blok.addEventListener(Event.ENTER_FRAME, moveBack);
      }
      И где бы не отпускал, всё равно была анимация назад, а когда оставляешь только if (blok.y< =1), то работает нормально. Час наверно ломал голову как такое возможно... Понапихал трейсов куда только можно, и тут меня осенило. ЗАПЯТЫЕ!!! Их не должно быть вообще!!!!!!!!!!!!!!!!! Значения пишутся через точку. 568.5, а не 568,5. Соответственно и в других местах также.
      Итого, список ошибок:
      • Запятые
      • Условие возврата через или || а не через и &&.
      • + к этому потеряна цифра 4 в условии
      //если блок над строкой 8
      if(blok.y>442.5 ….
      • Ну ещё по мелочи, бывает что при отпускании кнопка не возвращает размер, а делает ещё меньше, поэтому лучше делать ещё начальные размеры по аналогии хо, у0, например, w0, h0.
      • запутанная организация программы на самом деле. Особенно, если это программа для детей, удобнее было бы ещё сделать 18 кубиков слева внизу с этими разными блок-схемными палками и перетаскивать их так же в ячейки, нежели перебирать по одной. Дело вкуса конечно.. :) У меня флеш СС, так что думаю ваш флеш, если он другой, не откроет файл, так что вот код, можете просто заменить свой :)
      https://yadi.sk/i/gQyWFG1DdYf7p

      • Mora

        1) Запятые…з-з-запятые? Х_Х Ну вашу ж машу!!!!! \ОАО/ Ни в жисть не догадалась бы… Не ожидала я от них такого предательства ._. (мой мир слегка пошатнулся, ага)
        2) Ну я так и знала, что где-то что-то в том месте я написала не так =D Грю же, логике AS от меня плохо.
        3) Граа >A< Мораль: на копипаст надейся, а сам ворон не считай.
        Ах, Евгений, какое счастье, что Вы есть, так бы и расцеловала. На полном серьёзе. По поводу организации, конечно да, но мне пока так проще Х))) Чую сейчас будет сложнее и всё равно придётся переделывать, но хотя бы с одной проблемой разобрался Ваш опытный взгляд, чего мне очень сильно не хватает по жизни (ни своего, ни чужого, бидааа)). Теперь могу встретить лбом следующую стену.

        • admin

          ☼ Если мир пошатнулся, можем посмотреть на него вверх ногами (.-.) :D
          ♫ Мне тоже логика ас3 не нравится, ас2 был лучше.
          ♥ Поцелуи приняты :-)
          ☺ Про организацию самое точное слово было – пока xD. Т.к. дальше с такой организацией нужно плясать с бубном xD
          p.s. запишите тогда свой шикарный шаманский танец, хоть посмеёмся :D

          • Mora

            ☼ Пора рассматривать его в другой плоскости..
            ♫ Пожалуй, это AS моя логика не нравится, а не наоборот XDD
            ☺ Не имея иной идеи я по Вашему совету поле составила из статичных клеток без линий (с последнего кадра), а варианты клеток расположила в ряд. Ух, ух, ух, как же мало остаётся времени /(хvх)\
            p.p.s. Можно сразу переходить на апофеоз и рыдания? =D

        • admin

          Не припомню моего совета, чтобы я говорил делать 18 слоёв клеток xD Я бы сделал 4*9= 36 клеток :) У вас же их 648 xD ( хорошо, что они не двигаются, были бы райские тормоза флеша :D ) И каждой надо управлять…

          А вы можете вкратце обрисовать что за программу вы делаете?:) И для чего черный экран слева?
          Вот в библиотеке есть задачи, типа “Дано целое число”, “Есть коза, волк и капуста”, я так понимаю этот зеленый текст должен быть в этом черном экране (закос под Fallout 3 xD).
          А дальше мы из доступных зеленых блоков блок/схемы должны составить правильное решение задачи, потом нажать где-нибудь кнопку “готово, проверяйте” и нам будет выдан ответ о верности? А дальше следующая задача и другой набор зеленых блоков, которые уже для другой задачи? И по итогу решения задач будет количество правильно решенных? :)

          • Mora

            Так я и сделала 36 клеток вместо 648, говорю же))
            А задачу поняли правильно, браво \^v^/ только без количества решений. Эта игрулька должна потом ещё анимацию в демонстрацию показывать (да, я люблю усложнять себе жизнь о_о) в этом экране. В общем, ещё думать надо Х)))
            Другие блоки я не добавляла, пока хотя бы первую задачу не настрою)))
            (И я не играла в Fallout Х))))

        • admin

          В том файле, который я открывал было 648 клеток :)
          Задумка у вас грандиозная, особенно учитывая ваши проблемы со сроками :D

        • admin

          Как у вас успехи с вашей игрой-приложением?:)

          • Mora

            Хе, отдыхаю сижу) Сроки удалось отодвинуть на месяцок. Завтра-послезавтра снова займусь им. Кстати, с наступившим Новым Годом \^o^/

        • admin

          Так поджимали сроки, что отодвинулись аж на месяц xD Прикольно :D И вас с новым годом! :) )) тыдыыыщ! тыдыыыщ! :D

  31. Mora

    Сессия поджимала, да, без приколов никак))) Ну, этот проект долгом остался и т.к. он у меня единственный, сказали, чтоб до госов обязательно сдала. Хвала прогрессу – у преподов есть e-mail =DDD

    • admin

      Лучше бы сказали сделать Марио или Angry Birds xD Там хоть понятно как делать. Я подумаю над вашей задачей, потому что я так с ходу даже не знаю как реализовать алгоритм определения правильности блок-схемы… Если вы знаете, то респект :D Можете распечатать моё сообщение и отправить на е-маil преподу, мол эксперт признал уровень мастерства xD Глядишь автоматом поставит :D DD

      • Mora

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

        • admin

          Просто, учитывая, что вы не знаете as3, и взяли такую сложную задачу, без помощи я не уверен что у вас получится её сделать. Я сам пока не знаю как обрабатывать блок-схему. Есть вариант просчитывать все клетки, но это получится очень много вариантов надо закодировать! Надо обмозговать это.

        • admin

          Думал-думал, и пришёл к выводу что не знаю как это сделать. :( Во-первых, нет единого правила для построения блок-схем. Её можно нарисовать по-разному. По-разному соединять линии между собой, линии с блоками, разветвления. При условии “если”, можно рисовать как линию вниз и в сторону, так и в обе стороны, линию возврата можно рисовать как выше блока, так и в сам блок. Учитывая, что типов соединения много, ячеек тоже много, учесть все варианты невозможно. Может и возможно, но я не представляю как.

          К примеру, задачу 1 можно запрограммировать просто, если блоки идут строго вниз. Проверяем состояние стартовой ячейки и тип связи (вниз), потом клетку ниже – что там у нас в ней и тип связи, и дальше вниз.

          Задача 2: Одно условие “если”. Вот тут уже проблемы. Из условия мы можем пустить ветку вниз и вправо, вниз и влево, или вправо и влево. Как это отслеживать? В голову приходит только использование кода, который будет ориентироваться по связям в блок-схеме. Учитывая что у вас нет задач с циклами и повторными действиями ( и слава Богу Любви :) ), такой вариант я считаю единственным верным. Особенно если посмотреть на задачу 3. Там построить на картинке решение можно очень по-разному.

          В общем, надо продумать организацию клеток (какой блок и какая связь в нём) и алгоритм проверки ячеек по направлению связей.

        • admin

          Родился ещё один вариант! :) Принцип такой: смотрим связи между блоками! Т.е. допустим, мы набросали блоков на схему и сделали связи, и смотрим – что у нас между 2 нужными нам блоками. Потом между следующими двумя. И т.д. :) Может этот вариант даже проще.

          • Mora

            Спасибо, я попробую обмозговать предложенные варианты х_х
            Эти праздники иногда так не вовремя))
            Каждому клипу у меня (пока что для одной задачи) присвоена своя цифра, как у Вас в колоде карт. Нужно запрограммировать определённый порядок следования цифр, который и является решением задачи (всё равно в эту программу особо играть никто не будет, это т.н. пробник)). Может, по “своему” алгоритму заполнить массив из имён блоков, которые пользователь построил и сравнивать с нашим массивом поэлементно (не учитывая в каком месте клеток было произведено построение, главное – правильная последовательность). Если совпадает, зачесть решение. Если нет, то сообщить о “некорректности” схемы. Я выбрала задачи специально простые с очевидностью решения. Предположим, что я будущим пользователям определила как надо строить, поэтому с вариантами построения (кто как сам по себе) вопрос можно исключить. Т.е. это не самостоятельная программа, с ней идёт учебный материал отдельно.

        • admin

          Попробуйте свой вариант:) Хотя, я не знаю как его сделать))

  32. Nndern

    Спасибо за проделанную работу, очень интересно и познавательно.)

    Почему перестали делать новые уроки?

    p.s Хотелось бы видеть больше коротких уроков с обзором примеров не игр в целом(это наверняка тратит ваше и без того ценное время на разработку), а реализацию игрового функционала и механики из разных жанров игр (в качестве видео ответов на вопросы например)

    Удачи вам в дальнейшей работе!

    • admin

      Благодарствую :) Отвечал уже, но ладно.. :) Перестал, потому что мне сейчас не до этого, и это отнимает ооооооооооооооочень много времени, причем сама игра делается 10-30% времени, а 70-90% это пересоздание игры с записью видео, монтаж видео, запись звука, монтаж звука. Учитывая что сейчас должны идти игры сложнее, то и времени на них надо всё больше и больше. Те уроки что есть, их вполне хватит чтобы собрать практически любую игру!!! Даже не гружу классами :) По бокс2д курс делать не буду, т.к. есть у других ребят и очень хороший. По старлингу тоже, флеш плеер перестаёт тормозить сам по себе. :) ))
      А коротки уроки с обзором не из игр, это какие?:) Я думал насчёт видеоответов, но опять же… Время. Вот у меня тут спрашивают, кидают исходники, мне 20 минут и ответ готов, а с видео это много возиться…
      У меня есть мыль некоторые мои ответы делать как отдельный пост, потому что бывают подобные вопросы. И ещё думал насчёт сделать ветку по ошибкам, и что они значат. Но не до этого сейчас, надо свою игру делать…

  33. Отто

    Респект тебе огромный :)
    У тебя 9 часовой оригинал?)) Может можно как-нибудь его посмотреть через торрент? Хочу в точности все повторить. Потому что я в флэш вообще не разбираюсь, а тут конкретный пример и я застрял на первой минуте где там манипуляции со слоями. пишу команду pole.gotoAndStop(3); и ошибку выдает.хочу создать тоже несколько карточных игр.

    • admin

      благодарствую :) Оригинала нет, да и не надо :) ведь 9 часов – это проба разных вариантов кода, ошибки, исправления, поиск чего-то в интернете, рутина всякая. это всё и было вырезано. Осталось самое нужное. :) Если не знаешь флеш, советую посмотреть мои уроки с 1-16, 28-33.
      “пишу команду pole.gotoAndStop(3); и ошибку выдает.” Либо у тебя нет клипа pole, либо ошибка в названии, либо в клипе поле нет третьего кадра.
      Можешь просто открыть исходник и рядом создать новый файл. Повторять по уроку, а если ошибка где, то смотришь исходник и как сделано там. Хотя в видеоуроке вроде всё по порядку рассказано.

  34. Отто

    admin,Женя (насколько понял из коментариев), искал твои контактные данные – не нашел. Можно с тобой связаться через Вк хотяб. Пишу карточную игру бывают вопросы на которые ты за минуту ответишь, а я часы трачу в поискахответа в инете и на форумах. Обещаю по глупастям как в предыдущем вопросе беспокоить не буду. :) А щас хочу спросить… :)
    У тебя есть опыт создания онлайн игр? можешь посоветовать какой технологией лучше воспользоваться, чтоб связать АС с сервером? И чтоб динамическое соединение было, тоесть чтоб страница целиком не перезагружалась,а толкьо отдеьные части обновлялись. Может у тебя есть пример кода?
    С Уважением:))

    • admin

      Самое прикольное, когда пишут, что не знают как связаться и при этом пишут мне :D Видимо это не связь, а неформальное общение с моим информационным полем :D Есть вопросы – пиши тут :) В вк я редко, как и в ютюбе.
      Опыта создания онлайн-игр отсутствует. Могу посоветовать ооочень крутого парня в этой теме – Антон Карлов – Вот целая ветка из 12 глав по созданию онлайн-игры:
      http://www.ant-karlov.ru/kak-sozdat-mnogopolzovatelskuu-igru-anons.html
      Только она всё делает в классах :D Если бы я делал по его примерам я бы всё перегнал в бесклассовую систему :) Ну или не всё… :)

  35. cavan

    здравствуйте! не могли бы подсказать? я пользуюсь actionscript 2.0 но хочу перейти 3.0.как мне это сделать?в интернете мало информации заранее спасибо!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">