Презентация с UAFPUG в Киеве по платформенному движку + исходник с уровнем
31.12.2009, автор Stormit, рубрики: ActionScript, Flash игры, Анимация, НовостиПоздравляю всех с Новым Годом! В новом году желаю всем игроделам делать только удачные флеш-игры
С долгами в Новый Год нельзя, поэтому выкладываю презентацию с UAFPUG, которая проходила в Киеве, в октябре месяце.
а также, как и обещал, исходник к готовому уровню:
Simple Platform Engine Source (112.1 KB, 3,578 hits)
Интересно на 34%




Презентация офигенная!
От себя тоже хочу поздравить всех флэшеров с новым годом! Также хочу вырозить свою бдагодарность создателям блога за их офигенные уроки. Продолжайте в томже духе!
Ииииииииии С НОВЫМ ГОДОМ!!!
p.s. хотелось бы что б в новом году блог обновлялся почаще=)
С новым годом, Денис! :о*
отличная презентация!
с Новым Годом! и успехов в нем
Всех с Новым Годом!!!!!
Маленький вопросик, чего-то исходник не открывается
В какой версии Macromedia сделан? (у меня шестая)
У меня 8, и тоже не открывается.
Но благодаря урокам(более ранним) я сам всё сделать =)
Шикарно!
Исходник в версии Flash CS3. Более ранних у меня нет. Советую либо перейти на CS3, либо по цепочке пересохранить до нужной версии (чтобы не станавливать программы используйте Portable версии флеша).
CS3 - это Adobe Flash CS3 что-ль???
да - это Adobe Flash CS 3
Stormit я открыл твой исходник и прочитал скрипт и у меня возник вопрос что значит “splice” в строке “bonuses.splice(i ,1);”. Если кто-нибудь знает что это такое разжуйте пожалуста!!!
Метод splice () видоизменяет существующий массив, удаляя указанное число
элементов (т.е. один) от начального индекса (т.е. i).
Спасибо Stunt-man
ОБОЛДЕТЬ!!!!!
Спасибо за отличную презентацию и исходники. С Новым Годом!
Спасибо за такой новогодний подарок.
Супер блог! Самые простые и эффективные уроки по флешу!
Отличный сайт! С наступившим Новым Годом!
У меня есть пара вопросов:
1. Что, если для оптимизации скорости игры (при больших уровнях), перед тем, как игра началась, условно делить всю карту на сектора, и к каждому сектору приписывать те блоки, из которых составлена карта, и бонусы, которые находятся в этом секторе. А во время игры просто по _x и _y персонажа определять, в каком из секторов он находится, и расчитывать столкновения только с теми объектами, которые находятся в том же секторе? Ведь таким образом можно на порядок увеличить количество блоков, найдя оптимальные размеры условной сетки, как я думаю.
2. Как реализовать ИИ противников, чтобы они могли передвигаться самостоятельно во всех направлениях, когда не видят главного героя, и двигаться в сторону к герою, если он попал в их поле видимости?
3. Ну и забавный вопрос — как можно считать динамику игры и, исходя из этого значения, меня скорость фоновой музыки? Чтобы когда было спокойно в игре - музыка была не быстрой, а когда отбиваешься от 10 врагов монтировкой — музыка становилась громче и быстрее?
спасибо огромное
to Михаил
1) Всё верно, для больших уровней и большого количества объектов так и надо.
2) Для этого движка могу предложить только такой вариант: наставить в “развилках” уровня невидимые символы-маркеры. Противник будет смещаться в сторону героя, а при касании маркера будет принимать решение что ему сделать: подпрыгнуть, упасть вниз или бежать дальше. В любом случае вам придётся подгонять каждый уровень и тестить его на баги.
3) используйте 2 отдельных звука. Тихая и спокойная играет всегда, а громкость динамичной зависит от экшена на экране (количество противников в радиусе от героя или количество ударов персонажей в секунду…)
Спасибо, что ответили, надо будет попробовать побаловаться.)
Спасибо за исходник. По нему нахожу для себя много ответов на вопросы по структуре анимированного персонажа для флешигры. Делаю вывод, что символы и слои - основное средство.
Stormit народ разжуйти функцию, localToGlobal и globalToLocal как ее релизовать что-бы
за героем летал дым как в примеры с машиной(слайд с трактором) (у мя есть маркер “marker” и есть дым “smoke” маркер находиться на герой) помогите плиз
Эти функции принимают и возвращают объект со свойствами x и y
То есть такой {x:yourX, y:yourY}. Создайте его вначале(какие координаты преобразовать), а дальше используйте полученный результат как параметр для следующей функции.
Когда вы вызываете функцию localToGlobal, она возвращает такой же объект, но уже в системе координат _root.
Когда же вы вызываете потом функцию globalToLocal, очень важно от имени какого клипа вы это делаете, так как глобальные координаты преобразуются в систему координат именно этого клипа.
Спасибо БОЛЬШОЕ!!!
Отличная презентация! Туториал по сути:) Интересно, сколько теперь появится новых игр (на реализации этого движка), скажем через месяц?
а ты не даёшь уроков по flash api 3.0?
Ооооооооох, люди! Кто поможет умерающему человеку??? Прямо даже не знаю что делать! Помогите пожалуйста сгенирировать векторную графику в растровую. Сделал для своей игры большой фон (векторный) который естественно ужасно тормозит весь процес. Кто может подскажите!
За ранее спасибо! =)
Такой способ не подходит?
http://xitri.com/2009/03/27/cache_as_bitmap_alternative.html
to stalex
Вот и посмотрим сколько будет
Одними платформами не выйти, нужна ещё идея и качественный контент.
Однако, спасибо. Раньше видел эту статью но не вник в её суть (на тот момент мне это было не нужно). Так что ещё раз - спасибо!
Замодил движок, переделал лвл, героя, врагов и тд. Один вопрос как добавить здоровье глав герою и противнику и очки чтоб за убийство шли??? Или киньте ссылку если это где то уже разбиралось)))
И снова я обращаюсь с вопросом, а точнее с двумя. Первый - как с помощью кода можно в нужный момент объект с одного слоя переместить на другой? И второй - я хочу сделать несколько копий клипов, но чтоб они все сохроняли возможности оригинала? Если я ещё не кому не надоел то пожалуйста ответте.
Эу! Люди, вы что повымерали все?
TRY посети сайт flasher.ru. У тебя очень много вопросов на которые там давно уже есть ответы и часто от самих гуру. Почитай или там позадавай вопросы, это же блог, в комментариях не дискутируют обычно, и редко заглядывают, после оставления своего коммента.
Движок супер мега. Давно уже использую все хитрости описанные ранее. Спасибо!
ОК, Caleb! Зайду посмотрю.
Спасибо за исходник! Сделал на его основе платформер, но возникли вопросы:
var boom:Sound = new Sound (this);
boom.attachSound(”expl”);
И при вызове команды boom.start(); происходит небольшое подвисание, с чем это связано и как это можно исправить?
Наверно первый сайт с такими красочными примерами! вот только кое что сильно смущает, это то что все пишется на AS 1.0/2.0 вот это смущает.
Прекрасный рассказ об основах платформенного движка и “скроллинга”!
Вот только, Stormit, пожалуйста, напиши подробную статью об всяких наиболее часто встречающихся предметах в платформере, код к ним (у меня, например, даже с помощью исходника вертикальные лифты сделать, не то что горизонтальные).
И ещё предлагаю взять прыжковые платформы, всякого рода телепортаторы, умения-навыки игрока, предметы ручной клади, двери с замками, бонусы, увеличивающие не только счет, но и характеристики персонажа, управляемые лифты (игрок выбирает, куда ему ехать(например, сам же лифт в многоэтажном доме) и т. д.
Сделал первую игруху по урокам Хи3.
Конечно, простенько, но буду совершенствоваться дальше…
Извините за глупое предыдущее сообщение. Я уже сам практически все предметы сделал. И лифты, и противники, и т. д. и т. д. Уже делаю игру с другом. Графика, правда, не очень… Но у меня и в реальном мире по рисованию всегда четверка была, и натянутая… Я больше в программировании совершенствуюсь.
Слушайте, а может применить такой код:
Если Персонаж передвинулся ТО
Проверка на пустые места под нижним маркером
Если Слева ПустМесто, ТО Персонаж.поворот = X
Если Справа ПустМесто, ТО Персонаж.поворот = Х
Если прыжок = правда, ТО Персонаж.поворот = 0(по стойке смирно)
Примерно так можно устранить проблему наклонных поверхностей(конечно, я представил лишь малый вариант кода, а если вы его банально наберете, не доработав, от баги вам обеспечены).
Небольшая Хитрость: даже не изменяя движок, можно сделать склон - обманку.
Для этого берем несколько платформ и совмещаем их методом “ступеньки”. Ступеньки должны быть очень маленькой высоты! На слое выше рисуем в этом месте склон, скрывая ступеньки. Имейте в виду то, что, вам возможно, потребуется изменять форму нижнего маркера в “иглу”!
Ну, Хитрый, как всегда на высоте!
Спасибо тебе за сайт!!!
Как сделать основной фон прозрачным помогите плиз!!!