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




Презентация офигенная!
От себя тоже хочу поздравить всех флэшеров с новым годом! Также хочу вырозить свою бдагодарность создателям блога за их офигенные уроки. Продолжайте в томже духе!
Ииииииииии С НОВЫМ ГОДОМ!!!
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(по стойке смирно)
Примерно так можно устранить проблему наклонных поверхностей(конечно, я представил лишь малый вариант кода, а если вы его банально наберете, не доработав, от баги вам обеспечены).
Небольшая Хитрость: даже не изменяя движок, можно сделать склон - обманку.
Для этого берем несколько платформ и совмещаем их методом “ступеньки”. Ступеньки должны быть очень маленькой высоты! На слое выше рисуем в этом месте склон, скрывая ступеньки. Имейте в виду то, что, вам возможно, потребуется изменять форму нижнего маркера в “иглу”!
Ну, Хитрый, как всегда на высоте!
Спасибо тебе за сайт!!!
Как сделать основной фон прозрачным помогите плиз!!!
2 _=*STORMBYTE@PRO*=_
в HTML
не знаю только надо ли что-то при этом менять во флеше.
эм… теги вырезались…
для прозрачности необходимо при загрузке флешки добавлять в object: param name=”wmode” value=”transparent”
Спасибо большое!!!!
Все сделал как в примере, всё круто!!!
Только помогите, как лучше сделать чтоб враги умирали.
Люди помогите как задать действия любому предмету……
а что нужно вписать врагу чтоб он двигался на определеную дистанцию?
Параметр Dist (_parent.initEnemy(this,speed,dist).
Бросте пожайлуста исходник для АS 2.0, у меня этот не запускаеться на Flash MX 2004;
подскажите плиз как сделать лифт? пытаюсь отдельно блок назначить лифтом, но внутри него код то как у блока, следовательно он не ездит туда сюда.
с лифтами разобрался) оказалось надо еще и в самом блоке прописать что он лифт))
а на счет бонусов теперь возникла проблемка. тупо не выполняется
и подскажите ещзе плиз как сделать подсчет бонусов? вроеде созхдаю динамический текст, пишу в коде _root.bonuses ++; а он не меняется.
Люди дайти мне кто нибуть аски номир что бы посоветоватся…..
Как сделать чтобы персонаж сваливался с платформ, зайдя за их пределы?)))
Если не сложно реально кто-нибудь откройте и сохраните в режиме совместимости с Flash 8 хотя-бы.
а где можно найти прогу для создания таких движений,а лучше чтоб можно было сделать все эти действия???Подскажите!!!прошу!!!!
Здравствуйте!
Подскажите пожалуйста как сделать горизонтальные лифты?
ухуууу)))) круто))) вопросик) если захочу замутить, чтоб главный герой стрелял))) и чтоб при попадании враг умерал))) поможет кто нить?
Sk65 и Kemerover - Мой совет Вам »»» переходите на Adobe Flash CS3 (хотя-бы).
Krash сылку не скинишь где скачать?))))) я на mx 8 до сих пор ))))
Если кто-то объяснит как решить эту довольно надоедливую траблу или даст нормальный без-вирусный Crack - буду признателен))
мдаааа crash……а с вирусом крек Сильно лагает?) если вирусняк не такой вредный, можно и с ним) или ни как?))
Да нету там (пока)вирусов (уже просканил))
–
Дай мне свой ящик кину ссыль, а то здесь удаляют всё))
(кстать прежде чем играться с софтом от Adobe рекомендую пропатчить хост))
(полный путь_ C:\WINDOWS\system32\drivers\etc\)
(Подробнее: http://otvet.mail.ru/question/36414391/ ))
tatsumaru@inbox.ru =) зарание сПасибо)
Скинул =3
Здраствуйте stormit у меня возник вопрос с переходом на новый уровень.Я создаю квадратик) делаю его символом с инстанс наме END и в скрипте дописываю код
if (_root.end.hitTest(_x, getBounds(_root).yMax, true)) {
_root.gotoAndStop(2);
}
Но при соприкосновении с END он не переходит на 2 кадр с levelom nomer 2 а просто стоит на месте и дейсвий больше нет!? Не поправите меня?Заранее спасибо.
может место hitTest поставить getPixel;P но незнаю как ?Просто добавил 1 из вариантов но старый вариант более правильный на мой взгляд.
Вот еще пытался намутить
if (_root.end.nextFrame) вставил этот код в основной код не соприкосаясь с End он перпеходит на следеющий кадр
да это точно!!!
Вот еще бы все то же самое, но на AS3
Просто начал изучать AS и вникать в тонкости AS2 не хочется, когда уже есть AS3. Думаю многие из новичков хотят AS3 

Именно для новичков ведь эти уроки?
Ты прав это так) Зачем (м)учить AS2(создавать кучу movie-clip-ов) и маяться скучной ерундой с графикой? Лучше просто знать AS3 и не париться))
Товарищи, я не могу понять, как добиться разворота персонажа при движении в сторону, обратную направлению предыдущего движения?
в исходниках ничего не нашёл(
Danny, if (Key.isDown(Key.LEFT)) {
hero._xscale = -100;
hero._x -= (jump) ? speedX*.8 : speedX;
} else if (Key.isDown(Key.RIGHT)) {
hero._xscale = 100;
hero._x += (jump) ? speedX*.8 : speedX;
Обрати внимание на xscale.
Прошу помощи.
Вначале хочу поблагодарить автора за прекрасные статьи и отличный сайт. А загвостка вот в чем, может быть кто-нибудь подскажет, как сделать так, что бы когда не нажимается ни одна из клавиш, будь то Left, Right и другие, то у персонажа проигрывается фоновая анимация и он соотвественно стоит на месте, например шаркает ногой, когда же происходит нажатие на одну из выше перечисленных клавиш, то фоновая анимация останавливается и вместо нее проигрывается, на тех же ногах, например анимация ходьбы. Интересует AS2. Я уже пробовал ставить после каждой “if”, где задействуется клавиша, “else”, которая говорит проигрывать фоновую анимацию, но если их несколько они начинают перекрывать друг друга, в итоге персонаж движется а анимация ни одна не проигрывается. Заранее спасибо.
2 Den
switch (key){
case ‘left’:
….
break;
case ‘right’:
….
break;
…..
default:
// проигрываем нашу анимацию
break;
}
если же проверка не в одной функции и реализовано все только ифами, то можно как-то так:
создать переменную stand.
один раз перед проверкой нажатий клавиш stand = true.
в каждом ифе stand = false;
после проверки нажатий:
if (stand){
проигрываем анимацию по умолчанию
}
ах да… case ‘left’ и case ‘right’ я для примера написал… как там точно определять нажатые клавиши не помню… давненько на ASе не писал ничего, но на этот сайтик интересно иногда заходить =)
Автору Спасибо)))я уже сделал игруху))) CRASH спасибо за CS4)) удобная версия=)
kingslayer ))) ты разобрался с подсчетом бонусов?=)
Спасибо большое за исходник. А в AS 3 исходника нету, а то во втором практически ни фига не понимаю.