Итак продолжим изучать hitTest. На этом уроке мы будем использовать метод hitTestPoint для определения столкновения нашего персонажа с фигурами абсолютно любой формы. По окончании урока мы создадим такую флешку:
P.S.: Всю графику во флешке я тупо стырил из пака со спрайтами из разных игр, если что)))
Подготовка флешки.
1. Создадим главного героя:a) Дадим ему имя hero.
b) Внутри мувика с персонажем вокруг него расставим 16 маркеров (это обычные мувиклипы с именами от p1 до p16). С помощью этих маркеров мы будем определять столкновение персонажа со стеной.
2. Создадим графическую часть уровня.
Тут всё просто. Создаём отделный слой, и рисуем всё, что душе угодно.
Создаём новый слой и просто рисуем что угодно, и чем угодно в том месте в котором вам нужно, что бы игрок врезался.
Выделяем всё стены и делаем их одним мувиком с именем wall.
Подготовка закончена! Приступим к коду.
Написание кода
Создаём новый слой и называем его AS.
stage.addEventListener(Event.ENTER_FRAME,updateF);//слушатель событий; wall.visible = false;//делаем нашу стену невидимой function updateF(e:Event):void { for (var i:int=1; i<17; i++) { if ((wall.hitTestPoint(hero["p"+i].x+hero.x,hero["p"+i].y+hero.y,true)))//проверка на столкновение каждого маркера со стеной { var ugol = Math.atan2(hero["p" + i].y,hero["p" + i].x); for (var i2:int=1; i2<30; i2++) { hero.x -= 0.3 * Math.cos(ugol);//отталкивание от стены hero.y -= 0.3 * Math.sin(ugol);//отталкивание от стены if ((wall.hitTestPoint(hero["p"+i].x+hero.x,hero["p"+i].y+hero.y,true)==false))//если персонаж не соприкасается со стеной { break;//то выйти из цикла } } } } }Вот и всё! Исходник
Smitg9 мне нужно с вами проконсультироваться. Куда вам можно написать письмо? dim_ok_23@mail.ru
ОтветитьУдалитьСпасибо за уроки! Мне, как новичку, они очень интересны!
ОтветитьУдалитьСкажите, как можно с Вами связаться для консультаций?
Хотелось бы задать вопросы по моему коду.
Спасибо заранее!
вау, круто! спасибо большое! давно искал такое простое разъяснение для столкновения кривых фигур.
ОтветитьУдалитьСпасибо тебе ОГРОМНОЕ за этот урок!!! У меня нет слов, никак не получалось найти подобный код, и вот! Это просто супер блог!!!))))
ОтветитьУдалитьВ скайп anastasia270273 напишите - по делу.
ОтветитьУдалитьЕсли есть какие-то вопросы, пишите сюда.
Удалитьблин 425mb слишком много, а есь проги по меньше хотяб 50mb а то с моим инетом это вобще плохо получается, я пока просто уроки читал но мне кажется этот язык програмирование не сложнее чем CSS, HTML и JavaScript я занимался этим давненько но наскучило, думаю эти игры делать не сложнее только вот 400 метров это реально не подъемный вес для меня((( и это я еще в школе учусь но в некоторых языках програмирования разабрался
ОтветитьУдалитьгораздо сложнее чем CSS или HTML. В AS команд наверное раз в 50 больше чем в CSS+HTML вместе взятых
УдалитьПри том что CSS и HTML не языки программирования.
ОтветитьУдалитьА в as3 нет команд, только объекты и методы.
Этот комментарий был удален автором.
ОтветитьУдалить