Детальніше метод Math.random () в системі частинок
У нашому останньому підручнику ми закінчили анімацію про снігопад для нашої системи частинок Flash CS3. Спочатку ми створили та анімували одну сніжинку. Тоді ми створили багато анімованих сніжинок для завершення анімації снігопаду. Однак, коли ми тестували фільм, ми були не дуже задоволені результатами, тому що сніжинки, здається, відсутні у лівому нижньому куті сцени.

Що ми можемо зробити, щоб налаштувати нашу анімацію? Як ми це зашифрували зараз, сніжинка може розпочати своє життя де завгодно вгорі вершини сцени в положенні від 0 до 510 на осі X. Потім ця сніжинка пробивається вниз у кутовому напрямку вправо. Здається, що саме цей кутовий напрямок викликає відсутність сніжинок у лівому нижньому куті сцени. Ми можемо вийняти код, який створює кутовий рух, і наші сніжинки просто впадуть прямо вниз по сцені. Якби ми це зробили, снігопад покрив би всю сцену, але ми втратили б ілюзію вітру, який імітує кутовий рух.

Припустимо, що ми хочемо зберегти цю ілюзію вітру, і тому нам потрібно тримати кутовий рух. Як ми вже згадували вище, наші сніжинки можуть починатися де завгодно на вершині сцени. Однак навіть сніжинки, які починають падати з самої лівої частини сцени (в положенні 0 на осі X), приземляться в нижньому центрі сцени, залишаючи ліву область порожньою. Як ми можемо змінити наш код, щоб частина сніжинок вийшла на сцену в нижній точці по вертикальній осі Y і, отже, потрапила через лівий кут сцени. Не вдаючись до занадто великої математики для цього підручника для початківців, нам потрібно почати створювати сніжинки поза сценічної області ліворуч. Хоча ці сніжинки будуть невидимими, коли вони розпочнуть своє життя, вони потраплять щонайменше на половину шляху вниз по вертикальній осі Y, перш ніж вони вийдуть на сцену і стануть видимими. Роблячи це, ми гарантуємо, що ці сніжинки потраплять через лівий нижній кут сцени.

Зараз ми генеруємо випадкове число для властивості the_Snowflake.x. Пам'ятайте, що саме властивість _Snowflake.x контролює початкове положення X для наших сніжинок. Це початкове положення може бути будь-яким числом від 0 до 510 вздовж осі X.

_Snowflake.x = Math.random () * 510;

Якщо ми скажемо Flash для використання числа від -350 до 510, сніжинки, які починаються з від’ємного числа, будуть сніжинками, які в кінцевому підсумку потрапляють через нижній лівий кут сцени. Це можна зробити, додавши -350 до випадкового числа, що генерується методом Math.random ().

_Snowflake.x = -350 + Math.random () * 510;

Змініть цей рядок коду і протестуйте свій фільм. Що трапилось? Ми вирішили нашу проблему і викликали іншу. Тепер сніжинки відсутні у верхньому правому куті сцени. Чому? Найбільша кількість для властивості the_Snowflake.x (положення сніжинки вздовж осі X) становитиме 160 (510 - 350). На решті осі X між 161 і 550 немає сніжинок, і тому правий верхній кут порожній від снігу. Як ми можемо отримати число для властивості the_Snowflake.x в межах від 0 до 550? Ми можемо розширити діапазон випадкових чисел до 0 і 900 (550 + 350).

_Snowflake.x = -350 + Math.random () * 900;

Змініть код і протестуйте ще раз. Це працює. Ми зробили? Ні, якщо ви дозволите цій анімації працювати деякий час, ви помітите, що вона починає задавати ресурси вашого комп'ютера. Нам потрібно внести деякі зміни в ActionScript, щоб зробити його більш ефективним.

Примітка. Цей код анімації не є завершеним, поки ви не закінчите серію навчальних посібників. Не використовуйте цей неповний код у своїх проектах Flash.

Авторські права 2018 Adobe Systems Incorporated. Всі права захищені. Знімки екрана продуктів Adobe передруковані з дозволу Adobe Systems Incorporated. Adobe, Photoshop, альбом Photoshop, Photoshop Elements, Illustrator, InDesign, GoLive, Acrobat, Cue, Premiere Pro, Premiere Elements, Bridge, After Effects, InCopy, Dreamweaver, Flash, ActionScript, Fireworks, Contribute, Captivate, Flash Catalyst та Flash Paper є або є [a] зареєстрованою торговою маркою (ими), або торговою маркою (ими) Adobe Systems Incorporated у США та / або інших країнах.


Відео Інструкція: A Brief History of the Universe: Crash Course Astronomy #44 (Може 2024).