Люлеене a p; възел в Actioncript

От Juanlu_001 на 31 март 2008 г. с 91 951 посещения

люлеене

Както показва заглавието му, той е написан с цел да даде систематичен начин да накара обекти като махала или подобни да трептят по реалистичен начин, като също така дава множество възможности, като например спиране или не с течение на времето или това на за да може да направи няколко завъртания около точката на въртене, без да губи ефекта на реализма. Разбира се, напълно е адаптивно за постигане на различни скорости.

За да разберете този урок, не е необходимо да имате задълбочени познания за ActionScript, а само основни понятия.

Подготовка на махалото

За да започнете, създайте нов документ с големи размери (особено в горната част), с предпочитания от вас цвят на фона и с честота на кадрите в секунда от 40 fps, която използвам аз. В нов слой нарисувайте нещо като махало, което "виси" от линия (колкото по-дълго го направите, толкова по-добре ще бъде оценен ефектът) в обща позиция на почивка (не му давайте първоначален наклон, когато го рисувате), конвертирайте го в MovieClip и му дайте име на екземпляр ("удар" в моя случай). Точката за регистрация трябва да е на „въжето“, от което виси махалото, където искате да се люлее. Ето как беше моето „махало“:

След това можем да му дадем ротация (-30º например) и да продължим да пишем кода.

Определение на основни променливи

За начало ще определим поредица от променливи, които ще са необходими, за да се постигне по-късно люлеещото се движение. Ние пишем тези редове код във MovieClip:

Фактът, че теглото е положително за това въртене, а не обратното, се дължи само на начина, по който съм повдигнал уравненията.

Тези първи редове код ще служат за дефиниране на двете основни променливи за движението. Ще ги обясня в следващата стъпка, като напиша формулата, която ще го създаде.

Трептящо движение без забавяне

Сега пишем тези редове и във MovieClip:

Сега ще обясня малко това: това, което прави това поведение, е във всеки кадър да добавите към скоростта теглото, което сме му дали, с което то ще се увеличава всеки път (това ще постигне ефекта на ускорение). Ако приемем, че първоначалното въртене е отрицателно (т.е., че е наклонено надясно) и че следователно първоначалното тегло е по-голямо от нула, при достигане на въртене малко по-голямо от нула, първото условно ще се активира и тежестта ще се промяна на знака (this._rotation = 0.1; е така, че да не се „забие“) и следователно ще се забави, докато скоростта достигне 0. В този момент махалото ще се върти все по-бързо и по-бързо в посока На напротив, докато достигне - с отрицателно тегло, запомнете - завъртане, малко по-малко от 0, което ще бъде, когато се активира второто условно и теглото се върне, за да има положителен знак.