Veel Math.random () meetodit osakeste süsteemis
Oma viimases õpetuses viisime lõpule meie Flash CS3 osakeste süsteemi lumesadu animatsiooni. Esmalt lõime ja animeerisime ühe lumehelbe. Siis lõime lumesaju animatsiooni lõpuleviimiseks palju animeeritud lumehelbeid. Filmi katsetades ei olnud me tulemustega siiski eriti rahul, sest tundub, et lumehelbed puuduvad lava vasakust alumisest nurgast.

Mida saaksime oma animatsiooni kohandamiseks teha? Nagu nüüd kodeeritud, võib lumehelves oma elu alustada ükskõik kus lava ülaservas positsioonil vahemikus 0 kuni 510 X-teljel. Siis läheb see lumehelves allapoole nurga all paremale. Näib, et just see nurga suund põhjustab lumehelveste kadumise lava vasakus alanurgas. Võiksime välja võtta koodi, mis loob nurgelise liikumise ja meie lumehelbed kukuvad lihtsalt otse lavalt alla. Kui me seda teeksime, kataks lumesadu kogu lava, kuid kaotaksime tuule illusiooni, mida nurkliikumine simuleerib.

Oletame, et tahame säilitada seda tuule illusiooni ja seetõttu peame hoidma nurkkiigutust. Nagu me eespool mainisime, võivad meie lumehelbed alata kõikjal lava tipus. Isegi lumehelbed, mis hakkavad langema lava vasakust servast (0-positsioonil X-teljel), maanduvad lava alumises keskosas, jättes vasakpoolse ala tühjaks. Kuidas saaksime oma koodi muuta nii, et osa lumehelvestest siseneks lavale madalamast punktist mööda vertikaalset Y-telge ja langeks seetõttu üle lava vasakpoolsesse nurka. Laskumata selle algaja õpetuse jaoks liiga palju matemaatikat, peame hakkama vasakpoolsest lava-alast väljaspool moodustama lumehelbeid. Ehkki need lumehelbed on oma elu alustades nähtamatud, kukuvad nad enne lavale astumist ja nähtavaks muutumiseks vähemalt poole vertikaalsest Y-teljest alla. Sellega tagame, et need lumehelbed langevad üle lava vasakpoolsesse alumisse nurka.

Praegu genereerime atribuudi_Snowflake.x juhusliku arvu. Pidage meeles, et omadus _Snowflake.x kontrollib meie lumehelveste esialgset X-positsiooni. See algpositsioon võib olla mis tahes arv vahemikus 0 kuni 510 piki X-telge.

_Snowflake.x = matemaatika.omand () * 510;

Kui ütleme Flashile, et see kasutaks numbrit vahemikus -350 kuni 510, on negatiivse numbriga algavad lumehelbed lumehelbed, mis langevad lõpuks üle lava vasakpoolsesse alumisse nurka. Saame seda teha, lisades juhuslikule arvule -350, mis genereeritakse Math.random () meetodi abil.

_Snowflake.x = -350 + matemaatika.omand () * 510;

Muutke seda koodirida ja testige oma filmi. Mis juhtus? Parandasime oma probleemi ja põhjustasime uue. Nüüd puuduvad lava paremas ülanurgas lumehelbed. Miks? Atribuudi_Snowflake.x suurim arv (lumehelbe asukoht piki X-telge) on 160 (510 - 350). Ülejäänud X-telje vahemikus 161 kuni 550 puuduvad lumehelbed ja seetõttu on paremas ülanurgas lumi tühi. Kuidas saada atribuudi_Snowflake.x number vahemikku 0 kuni 550? Juhusliku arvu vahemikku saame laiendada vahemikku 0 kuni 900 (550 + 350).

_Snowflake.x = -350 + matemaatika.omand () * 900;

Muutke kood ja testige uuesti. See töötab. Kas oleme valmis? Ei, kui lasite sellel animatsioonil mõnda aega töötada, märkate, et see hakkab teie arvuti ressursse haldama. Peame ActionScripti efektiivsemaks muutmiseks mõned muudatused tegema.

Märkus. See animatsioonikood pole täielik enne, kui jõuate õpetussarja lõpuni. Ärge kasutage seda mittetäielikku koodi oma Flash-projektides.

Autoriõigus 2018 Adobe Systems Incorporated. Kõik õigused kaitstud. Adobe toote ekraanipilt (ed) kordustrükis Adobe Systems Incorporated loal. Adobe, Photoshop, Photoshop Album, Photoshop Elements, Illustrator, InDesign, GoLive, Acrobat, Cue, Premiere Pro, Premiere Elements, Bridge, After Effects, InCopy, Dreamweaver, Flash, ActionScript, Fireworks, Contribute, Captivate, Flash Catalyst and Flash Paper on / on kas [a] registreeritud kaubamärk (id) või Adobe Systems Incorporated'i kaubamärk (id) Ameerika Ühendriikides ja / või teistes riikides.


Video Juhiseid: Don't Stay in School (Aprill 2024).