Как создавать свои Flash-игры, подобные Angry Birds и World of Goo?
Box2D - это библиотека, которая моделирует физическое поведение твердых тел в двумерном пространстве. Программисты могут использовать ее в своих играх, чтобы сделать...
В этом уроке я покажу как сделать эффект тряски. Естественно, этот эффект сделан при помощи Action Script 3.0 . Так что запускайте ваш Adobe Flash и давайте приступим .
Создаем окружающую среду:
Переходим к ActionScript
Напишите следующее в первом кадре:
//Этот массив содержит все квадраты на сцене var rectangles:Array = new Array(); //В этом цикле мы создадим 20 квадратов for (var i = 0; i < 20; i++) { //Создание одного квадрата var rectangle:Rectangle = new Rectangle(); //Устанавливаем случайные размеры квадрата, одинаковые по X и Y rectangle.scaleX = Math.random(); rectangle.scaleY = rectangle.scaleX; //Устанавливаем случайное положение на сцене rectangle.x = Math.random() * stage.stageWidth; rectangle.y = Math.random() * stage.stageHeight; //Добавляем квадрат на сцену addChild (rectangle); //Добавляем квадрат в массив rectangles.push (rectangle); } //Таймер вызывает функцию "shakeRectangles" каждые 0.02 секунды var timer:Timer = new Timer(20, 100000000); timer.addEventListener (TimerEvent.TIMER, shakeRectangles); timer.start (); //Эта функция отвечает за анимацию function shakeRectangles (e:Event):void { //Цикл, для обращения к элементам массива for (var i = 0; i < 20; i++) { //Поворачиваем квадрат случайным образом (от -4 до 4) rectangles[i].rotation += Math.random() * 8 - 4; //Устанавливаем новую случайную позицию rectangles[i].x += Math.random() * 8 - 4; rectangles[i].y += Math.random() * 8 - 4; } }
Разве это было сложно? Так же можно поиграться со значениями и формами. Надеюсь, что вы многому научились из этого урока
Впервые!
Если у вас было хоть раз желание сделать что-то новое и необычное, то этот видеокурс для вас! Знания ActionScript 3.0 вдохнут в ваши проекты новую жизнь, позволив тем самым поднять их на новый уровень
С помощью этого видеокурса вы пройдёте путь от новичка до Объектно-Ориентированного Программирования, сможете работать со многими популярными библиотеками и научитесь создавать сайты во flash! + Видеокурс по PaperVision3D в подарок!
Видеокурс содержит 119 видеоуроков в 12 главах. На сегодняшний день это единственный видеокурс, таких масштабов
Комментарии
спасибо, замечательный урок :)
1) Админ всегда прав
2) Если админ не прав, смотри пункт 1
Мы в контакте -https://vkontakte.ru/club9573247
Не отвечаю на вопросы в личку касаемо Flash, у нас для этого есть форум
отлично!*good*
а не лучше здесь var timer:Timer = new Timer(20, 100000000); было написать просто var timer:Timer = new Timer(20); ? Ведь через 100000000 повторений анимация прекратится
aidalexeyaid, то есть через 23 дня? Да, может прекратится.*mda*
Но в том, что такая запись излишня, вы правы:
Гениальный урок. :)
Мне кажется если человек не мог сам до такого догадаться, то ему лучше не лезть в программирование вообще. Да и, почему-бы не реализовать с помощью ENTER_FRAME? :)
Да и желательно в таких вещах вводить слежку за переключением окна/вкладки. Незачем грузить процессор, когда человек не смотрит эффект. Ведь если я переключу вкладку, то все так и будет потреблять ресурсы компьютера, хоть и в меньших масштабах. Доделай урок чуток. :)
А так молодец автор. :)
Если бы вы были внимательны, то заметили бы ссылку на оригинал урока, а это значит, что авторы - буржуи и все претензии к ним, а человек тратил своё время для того, что бы этот урок перевести.
Но мы будем очень рады, если вы сделаете свой урок гораздо лучше и опубликуете его тут :)
1) Админ всегда прав
2) Если админ не прав, смотри пункт 1
Мы в контакте -https://vkontakte.ru/club9573247
Не отвечаю на вопросы в личку касаемо Flash, у нас для этого есть форум
mefisto777, ставить проверки? В таком случае нужно эти проверки ставить в каждом уроке на этом сайте, в каждом контейнере каждого приложения. Потому, что: "а вдруг пользователь не смотрит...".
Замечание не к ТеТ, а к автору урока :)
Да, EnterFrame, пожалуй, здесь более уместный. Во первых: в FP11(или еще в 10-м это придумали, не помню), если пользователь не смотрит приложение - ентерфрейм прекращает свое выполнение для разгрузки процессора.
Во вторых: Если фреймрейт приложения будет 30 а не 50 - тик таймера будет выполнятся в 1.5 раза быстрее, при чем пользователь этих изменений не увидит, пока не перерисуется кадр, что тоже повлияет на производительность.
не прекращает, а падает до 1 fps