Презентация с UAFPUG в Киеве по платформенному движку + исходник с уровнем

31.12.2009, автор Stormit, рубрики: ActionScript, Flash игры, Анимация, Новости

Поздравляю всех с Новым Годом! В новом году желаю всем игроделам делать только удачные флеш-игры :)С долгами в Новый Год нельзя, поэтому выкладываю презентацию с UAFPUG, которая проходила в Киеве, в октябре месяце.

а также, как и обещал, исходник к готовому уровню: 

Download: Simple Platform Engine Source  Simple Platform Engine Source (112.1 KB, 11,911 hits)

Интересно на 92%

(97) Хитрых на тему «Презентация с UAFPUG в Киеве по платформенному движку + исходник с уровнем»

  1. TRY

    Презентация офигенная!
    От себя тоже хочу поздравить всех флэшеров с новым годом! Также хочу вырозить свою бдагодарность создателям блога за их офигенные уроки. Продолжайте в томже духе!
    Ииииииииии С НОВЫМ ГОДОМ!!!
    p.s. хотелось бы что б в новом году блог обновлялся почаще=)

  2. Lerika

    С новым годом, Денис! :о*

  3. buagaga

    отличная презентация!

    с Новым Годом! и успехов в нем :)

  4. dacascas

    Всех с Новым Годом!!!!!

    Маленький вопросик, чего-то исходник не открывается :(
    В какой версии Macromedia сделан? (у меня шестая)

  5. Антон

    У меня 8, и тоже не открывается.
    Но благодаря урокам(более ранним) я сам всё сделать =)

  6. Anton Volkov

    Шикарно!

  7. Stormit

    Исходник в версии Flash CS3. Более ранних у меня нет. Советую либо перейти на CS3, либо по цепочке пересохранить до нужной версии (чтобы не станавливать программы используйте Portable версии флеша).

  8. dacascas

    CS3 - это Adobe Flash CS3 что-ль???

  9. Ruslan

    да - это Adobe Flash CS 3

  10. Ruslan

    Stormit я открыл твой исходник и прочитал скрипт и у меня возник вопрос что значит “splice” в строке “bonuses.splice(i ,1);”. Если кто-нибудь знает что это такое разжуйте пожалуста!!!

  11. Stunt-man

    Метод splice () видоизменяет существующий массив, удаляя указанное число
    элементов (т.е. один) от начального индекса (т.е. i).

  12. Ruslan

    Спасибо Stunt-man

  13. Флешер

    ОБОЛДЕТЬ!!!!!

  14. yailenko

    Спасибо за отличную презентацию и исходники. С Новым Годом! :)

  15. Dima

    Спасибо за такой новогодний подарок.

  16. Петр

    Супер блог! Самые простые и эффективные уроки по флешу!

  17. Михаил

    Отличный сайт! С наступившим Новым Годом!

    У меня есть пара вопросов:
    1. Что, если для оптимизации скорости игры (при больших уровнях), перед тем, как игра началась, условно делить всю карту на сектора, и к каждому сектору приписывать те блоки, из которых составлена карта, и бонусы, которые находятся в этом секторе. А во время игры просто по _x и _y персонажа определять, в каком из секторов он находится, и расчитывать столкновения только с теми объектами, которые находятся в том же секторе? Ведь таким образом можно на порядок увеличить количество блоков, найдя оптимальные размеры условной сетки, как я думаю.

    2. Как реализовать ИИ противников, чтобы они могли передвигаться самостоятельно во всех направлениях, когда не видят главного героя, и двигаться в сторону к герою, если он попал в их поле видимости?

    3. Ну и забавный вопрос — как можно считать динамику игры и, исходя из этого значения, меня скорость фоновой музыки? Чтобы когда было спокойно в игре - музыка была не быстрой, а когда отбиваешься от 10 врагов монтировкой — музыка становилась громче и быстрее?

  18. Noname

    спасибо огромное :)

  19. Stormit

    to Михаил
    1) Всё верно, для больших уровней и большого количества объектов так и надо.
    2) Для этого движка могу предложить только такой вариант: наставить в “развилках” уровня невидимые символы-маркеры. Противник будет смещаться в сторону героя, а при касании маркера будет принимать решение что ему сделать: подпрыгнуть, упасть вниз или бежать дальше. В любом случае вам придётся подгонять каждый уровень и тестить его на баги.
    3) используйте 2 отдельных звука. Тихая и спокойная играет всегда, а громкость динамичной зависит от экшена на экране (количество противников в радиусе от героя или количество ударов персонажей в секунду…)

  20. Михаил

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

  21. MihaPro

    Спасибо за исходник. По нему нахожу для себя много ответов на вопросы по структуре анимированного персонажа для флешигры. Делаю вывод, что символы и слои - основное средство.

  22. Ruslan

    Stormit народ разжуйти функцию, localToGlobal и globalToLocal как ее релизовать что-бы
    за героем летал дым как в примеры с машиной(слайд с трактором) (у мя есть маркер “marker” и есть дым “smoke” маркер находиться на герой) помогите плиз

  23. Stormit

    Эти функции принимают и возвращают объект со свойствами x и y
    То есть такой {x:yourX, y:yourY}. Создайте его вначале(какие координаты преобразовать), а дальше используйте полученный результат как параметр для следующей функции.
    Когда вы вызываете функцию localToGlobal, она возвращает такой же объект, но уже в системе координат _root.
    Когда же вы вызываете потом функцию globalToLocal, очень важно от имени какого клипа вы это делаете, так как глобальные координаты преобразуются в систему координат именно этого клипа.

  24. Ruslan

    Спасибо БОЛЬШОЕ!!!

  25. stalex

    Отличная презентация! Туториал по сути:) Интересно, сколько теперь появится новых игр (на реализации этого движка), скажем через месяц? :)

  26. СЕРГЕЙ

    а ты не даёшь уроков по flash api 3.0?

  27. TRY

    Ооооооооох, люди! Кто поможет умерающему человеку??? Прямо даже не знаю что делать! Помогите пожалуйста сгенирировать векторную графику в растровую. Сделал для своей игры большой фон (векторный) который естественно ужасно тормозит весь процес. Кто может подскажите!
    За ранее спасибо! =)

  28. Stormit

    Такой способ не подходит?
    http://xitri.com/2009/03/27/cache_as_bitmap_alternative.html

  29. Stormit

    to stalex
    Вот и посмотрим сколько будет :)
    Одними платформами не выйти, нужна ещё идея и качественный контент.

  30. TRY

    Однако, спасибо. Раньше видел эту статью но не вник в её суть (на тот момент мне это было не нужно). Так что ещё раз - спасибо!

  31. TaK3R

    Замодил движок, переделал лвл, героя, врагов и тд. Один вопрос как добавить здоровье глав герою и противнику и очки чтоб за убийство шли??? Или киньте ссылку если это где то уже разбиралось)))

  32. TRY

    И снова я обращаюсь с вопросом, а точнее с двумя. Первый - как с помощью кода можно в нужный момент объект с одного слоя переместить на другой? И второй - я хочу сделать несколько копий клипов, но чтоб они все сохроняли возможности оригинала? Если я ещё не кому не надоел то пожалуйста ответте.

  33. TRY

    Эу! Люди, вы что повымерали все?

  34. Caleb

    TRY посети сайт flasher.ru. У тебя очень много вопросов на которые там давно уже есть ответы и часто от самих гуру. Почитай или там позадавай вопросы, это же блог, в комментариях не дискутируют обычно, и редко заглядывают, после оставления своего коммента.
    Движок супер мега. Давно уже использую все хитрости описанные ранее. Спасибо!

  35. TRY

    ОК, Caleb! Зайду посмотрю.

  36. Chelik

    Спасибо за исходник! Сделал на его основе платформер, но возникли вопросы:
    var boom:Sound = new Sound (this);
    boom.attachSound(”expl”);
    И при вызове команды boom.start(); происходит небольшое подвисание, с чем это связано и как это можно исправить?

  37. Клавник

    Наверно первый сайт с такими красочными примерами! вот только кое что сильно смущает, это то что все пишется на AS 1.0/2.0 вот это смущает.

  38. Белов

    Прекрасный рассказ об основах платформенного движка и “скроллинга”!
    Вот только, Stormit, пожалуйста, напиши подробную статью об всяких наиболее часто встречающихся предметах в платформере, код к ним (у меня, например, даже с помощью исходника вертикальные лифты сделать, не то что горизонтальные).
    И ещё предлагаю взять прыжковые платформы, всякого рода телепортаторы, умения-навыки игрока, предметы ручной клади, двери с замками, бонусы, увеличивающие не только счет, но и характеристики персонажа, управляемые лифты (игрок выбирает, куда ему ехать(например, сам же лифт в многоэтажном доме) и т. д.

  39. dacascas

    Сделал первую игруху по урокам Хи3.
    Конечно, простенько, но буду совершенствоваться дальше…

  40. Белов

    Извините за глупое предыдущее сообщение. Я уже сам практически все предметы сделал. И лифты, и противники, и т. д. и т. д. Уже делаю игру с другом. Графика, правда, не очень… Но у меня и в реальном мире по рисованию всегда четверка была, и натянутая… Я больше в программировании совершенствуюсь.

  41. Белов

    Слушайте, а может применить такой код:
    Если Персонаж передвинулся ТО
    Проверка на пустые места под нижним маркером
    Если Слева ПустМесто, ТО Персонаж.поворот = X
    Если Справа ПустМесто, ТО Персонаж.поворот = Х
    Если прыжок = правда, ТО Персонаж.поворот = 0(по стойке смирно)
    Примерно так можно устранить проблему наклонных поверхностей(конечно, я представил лишь малый вариант кода, а если вы его банально наберете, не доработав, от баги вам обеспечены).

  42. Белов

    Небольшая Хитрость: даже не изменяя движок, можно сделать склон - обманку.
    Для этого берем несколько платформ и совмещаем их методом “ступеньки”. Ступеньки должны быть очень маленькой высоты! На слое выше рисуем в этом месте склон, скрывая ступеньки. Имейте в виду то, что, вам возможно, потребуется изменять форму нижнего маркера в “иглу”!

  43. Лёха

    Ну, Хитрый, как всегда на высоте!

  44. Александр

    Спасибо тебе за сайт!!!

  45. _=*STORMBYTE@PRO*=_

    Как сделать основной фон прозрачным помогите плиз!!!

  46. Magician

    2 _=*STORMBYTE@PRO*=_
    в HTML
    не знаю только надо ли что-то при этом менять во флеше.

  47. Magician

    эм… теги вырезались…
    для прозрачности необходимо при загрузке флешки добавлять в object: param name=”wmode” value=”transparent”

  48. _=*STORMBYTE@PRO*=_

    Спасибо большое!!!!

  49. xxxxx

    Все сделал как в примере, всё круто!!!
    Только помогите, как лучше сделать чтоб враги умирали.

  50. DeSkaN

    Люди помогите как задать действия любому предмету……

  51. Sk65

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

  52. Белов

    Параметр Dist (_parent.initEnemy(this,speed,dist).

  53. Sk65

    Бросте пожайлуста исходник для АS 2.0, у меня этот не запускаеться на Flash MX 2004;

  54. kingslayer

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

  55. kingslayer

    с лифтами разобрался) оказалось надо еще и в самом блоке прописать что он лифт))
    а на счет бонусов теперь возникла проблемка. тупо не выполняется

  56. kingslayer

    и подскажите ещзе плиз как сделать подсчет бонусов? вроеде созхдаю динамический текст, пишу в коде _root.bonuses ++; а он не меняется.

  57. DeSkaN

    Люди дайти мне кто нибуть аски номир что бы посоветоватся…..

  58. Chip

    Как сделать чтобы персонаж сваливался с платформ, зайдя за их пределы?)))

  59. Kemerover

    Если не сложно реально кто-нибудь откройте и сохраните в режиме совместимости с Flash 8 хотя-бы.

  60. Никита

    а где можно найти прогу для создания таких движений,а лучше чтоб можно было сделать все эти действия???Подскажите!!!прошу!!!!

  61. Гриша

    Здравствуйте!
    Подскажите пожалуйста как сделать горизонтальные лифты?

  62. Zoti_Jo

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

  63. Crash

    Sk65 и Kemerover - Мой совет Вам »»» переходите на Adobe Flash CS3 (хотя-бы).

  64. Zoti_Jo

    Krash сылку не скинишь где скачать?))))) я на mx 8 до сих пор ))))

  65. Crash

    Если кто-то объяснит как решить эту довольно надоедливую траблу или даст нормальный без-вирусный Crack - буду признателен))

  66. Zoti_Jo

    мдаааа crash……а с вирусом крек Сильно лагает?) если вирусняк не такой вредный, можно и с ним) или ни как?))

  67. Crash B

    Да нету там (пока)вирусов (уже просканил))

    Дай мне свой ящик кину ссыль, а то здесь удаляют всё))
    (кстать прежде чем играться с софтом от Adobe рекомендую пропатчить хост))
    (полный путь_ C:\WINDOWS\system32\drivers\etc\)
    (Подробнее: http://otvet.mail.ru/question/36414391/ ))

  68. Zoti_Jo

    tatsumaru@inbox.ru =) зарание сПасибо)

  69. Crash

    Скинул =3

  70. Kirill

    Здраствуйте stormit у меня возник вопрос с переходом на новый уровень.Я создаю квадратик) делаю его символом с инстанс наме END и в скрипте дописываю код

    if (_root.end.hitTest(_x, getBounds(_root).yMax, true)) {
    _root.gotoAndStop(2);
    }
    Но при соприкосновении с END он не переходит на 2 кадр с levelom nomer 2 а просто стоит на месте и дейсвий больше нет!? Не поправите меня?Заранее спасибо.

  71. Kirill

    может место hitTest поставить getPixel;P но незнаю как ?Просто добавил 1 из вариантов но старый вариант более правильный на мой взгляд.

  72. Kirill

    Вот еще пытался намутить
    if (_root.end.nextFrame) вставил этот код в основной код не соприкосаясь с End он перпеходит на следеющий кадр

  73. DeSkaN

    да это точно!!!

  74. Roman

    Вот еще бы все то же самое, но на AS3 :) Просто начал изучать AS и вникать в тонкости AS2 не хочется, когда уже есть AS3. Думаю многие из новичков хотят AS3 :)
    Именно для новичков ведь эти уроки? :)

  75. Crash

    Ты прав это так) Зачем (м)учить AS2(создавать кучу movie-clip-ов) и маяться скучной ерундой с графикой? Лучше просто знать AS3 и не париться))

  76. Danny

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

    в исходниках ничего не нашёл(

  77. Евгений

    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.

  78. Den

    Прошу помощи.
    Вначале хочу поблагодарить автора за прекрасные статьи и отличный сайт. А загвостка вот в чем, может быть кто-нибудь подскажет, как сделать так, что бы когда не нажимается ни одна из клавиш, будь то Left, Right и другие, то у персонажа проигрывается фоновая анимация и он соотвественно стоит на месте, например шаркает ногой, когда же происходит нажатие на одну из выше перечисленных клавиш, то фоновая анимация останавливается и вместо нее проигрывается, на тех же ногах, например анимация ходьбы. Интересует AS2. Я уже пробовал ставить после каждой “if”, где задействуется клавиша, “else”, которая говорит проигрывать фоновую анимацию, но если их несколько они начинают перекрывать друг друга, в итоге персонаж движется а анимация ни одна не проигрывается. Заранее спасибо.

  79. Magician

    2 Den
    switch (key){
    case ‘left’:
    ….
    break;
    case ‘right’:
    ….
    break;
    …..
    default:
    // проигрываем нашу анимацию
    break;
    }

    если же проверка не в одной функции и реализовано все только ифами, то можно как-то так:

    создать переменную stand.
    один раз перед проверкой нажатий клавиш stand = true.
    в каждом ифе stand = false;
    после проверки нажатий:
    if (stand){
    проигрываем анимацию по умолчанию
    }

  80. Magician

    ах да… case ‘left’ и case ‘right’ я для примера написал… как там точно определять нажатые клавиши не помню… давненько на ASе не писал ничего, но на этот сайтик интересно иногда заходить =)

  81. Zoti_JO(Wolpertinger)

    Автору Спасибо)))я уже сделал игруху))) CRASH спасибо за CS4)) удобная версия=)

  82. Zoti_JO(Wolpertinger)

    kingslayer ))) ты разобрался с подсчетом бонусов?=)

  83. PaulP

    Спасибо большое за исходник. А в AS 3 исходника нету, а то во втором практически ни фига не понимаю.

  84. Евгений

    Народ, помогите! Выпишете код массива с противниками, а то у меня Flash 6 !

  85. Евгений

    Насчет наклонных плоскостей можно использовать самую распространенную-45 градусов. Создаешь массив с маркерами, при пересечении с которыми персонаж двигается с равной скоростью по x и y, а если повернется назад, то x-=столько-то и y-=столько же.

  86. Sergix

    function checkHeroHit(tgt) {
    var i = enemies.length;
    while (i–) {
    var e = enemies[i];
    if (e.man.head.hitTest(tgt)) {
    e.gotoAndStop(3)
    popal ++
    trace(popal);
    if(popal>2) {
    e.removeMovieClip();
    }
    }
    }

    по исходному тексту врага делал.. Вот решил сделать что бы после двух ударов удалялся. если вместо e.removeMovieClip написать trace popal то нормально считает. А удалять не хочет :( Подскажите в чем проблема

  87. Sergix

    Все получилось) Хуть и не совсем програмно. Первым делом создал ещё один кадр смерти для врага. Вторым добавил в код счетчик ударов. Третим кроме проверки на количество, в счетчике сделал сброс на 0 после убийства врага!)
    http://volgoenergo.ru/123.swf
    Как сделать сброс игры на кадре проигрыша и выигрыша? Ото что то не как не пойму…

  88. Ден

    а у меня flash 8.
    исходник пишет т ипа формат файла не верный!(

  89. Роман

    подскажите решение, чтоб не тормозила игра..я наделал множество мовие клипов..как мне быть?

  90. Евгений

    Подскажите пожалуйста, какими строчками обозначено, чтобы ГГ запрыгивал на препятствия, я как ни пытался всё равно глючит как-то, я пишу на третьем экшнскрипте…

  91. Jozef

    При скролинге фон подглючивает, перемещается не плавно. Как такого избежать?

  92. я

    Народ! Как лифт сделать?

  93. Иван

    Тоже столкнулся с реализацией горизонтальных лифтов пока никак перс то стоит на место то съезжает с лифта. Может кто то все таки знает как реализовать горизонтальные лифты.

  94. pony playstation

    http://vkontakte.ru/app2349656 - 3 игра в списке разрабатывается на этом движке, там есть горизонтальные лифты напишите в теме игры, мож ответят.

  95. Иван

    Благородный товарищ ответил по поводу лифтов так что если кому интересно вот ссылка на пост http://vkontakte.ru/topic-23632775_24733351

  96. я

    Странно, у меня моб ГГ бъёт, а ГГ моба - нет. Помогите Stormit!!!

  97. LiFeZ

    Классный урок спс!Скожите плз можно ли сделать чтобы в swf файле нажатием мышкой на кнопку открывался файл на пк (exe,папка и тд) Заранее спасибо=)

Оставить комментарий