Vėjo poveikis su „Flash CS3 Math.random“ ()
Dabar, kai snaigė krinta mūsų blyksteR dalelių sistemą, šiek tiek pakeiskite „ActionScript 3“ kodą. Mūsų žvynelis tiesiog krinta tiesiai žemyn. Bet, jei visiškai nėra vėjo, dauguma dribsnių keliauja žemyn nuožulniai. Taigi pasitelkime šiek tiek matematikos, kad mūsų žvynelis šiek tiek kristų į dešinę. Norėdami pridėti daugiau tikrovės, norime, kad horizontalus judesio dydis pasikeistų, kai snaigė leidžiasi į sceną.

Atminkite, kad viename iš ankstesnių šios serijos vadovėlių horizontaliai horizontaliai išilgai scenos viršaus padėjome dribsnius skirtingose ​​vietose. Mes tai padarėme, nustatydami skirtingas kiekvienos žvynelės X padėties vertes. Taigi šiame vadove mes galime vėl naudoti tą pačią _Snowflake.x ypatybę, norėdami valdyti animacijos horizontalųjį judėjimą.

Antra, kai sukūrėme savo žvynelį, pradinius žvynelio X ir Y padėtis nustatome atsitiktiniu skaičiumi.

_Snowflake.x = matematika.daiktas () * 510;
_Snowflake.y = Math.random () * 40;

Mes galime naudoti tą pačią Math.random () norėdami valdyti atsitiktinio horizontaliojo judesio kiekį. Ar spėji, kas bus toliau?

Mes žinome, kad kiekviename mūsų „Flash“ filmo kadre mes vadiname snaigės funkciją.

stage.addEventListener (Event.ENTER_FRAME, snaigės);

Ši funkcija padidina „_Snowflake.y “savybę 10 kiekvienam kadrui. Būtent tai žvyrą nustumia žemyn į sceną.

_Snowflake.y + = 10;

Bet tai yra per greitai, kad pamatytume subtilų horizontalųjį judesį, kurį pridėsime toliau. Taigi, šiek tiek sulėtėkime, pakeisdami 10 į 5.

_Snowflake.y + = 5;

Dabar tą patį kodą galime naudoti, jei norite dribsnį perkelti horizontaliai į dešinę. Viskas, ką mums reikia padaryti, yra pakeisti_snowflake.y į_Snowflake.x.

_Snowflake.x + = 10;

Dabar snaigė judės 10 pikselių į dešinę ir 5 pikselius žemyn kiekviename mūsų „Flash“ filmo kadre. Tačiau būtų realiau, jei horizontalus snaigės judesys būtų labiau atsitiktinis, nes jis lemia sceną. Tai galime padaryti pakeisdami 10 atsitiktiniu skaičiumi nuo 0 iki 9. Tam naudosime Math.random ().

_Snowflake.x + = matematika.dažnai () * 10;

Toliau mes pridedame šį naują kodą į snaigės funkciją ir gauname tai.

if (_Snowflake.y> 370)
{stage.removeEventListener (Event.ENTER_FRAME, snaigės); }
Kitas
{_Snowflake.y + = 5;
_Snowflake.x + = matematika.daiktas () * 10;}

Bet dabar, kai mes perkeliame dribsnį į dešinę, jis ilgainiui gali peržengti dešinę ekrano pusę. Atminkite, kad mes sustabdėme snaigę, jei ji nukrito žemiau scenos.

if (_Snowflake.y> 370)

Mes taip pat galime jį sustabdyti, jei jis peržengs dešinę scenos pusę. Pridėkime tai prie mūsų sąlyginio teiginio. Kadangi norime, kad animacija sustotų, jei pirmoji ARBA antroji iš šių sąlygų yra tikra, galime naudoti || operatorius tarp dviejų teiginių if sąlygų.

if (_Snowflake.y> 370 || _Snowflake.x> 550)

Jei kuri nors iš šių sąlygų yra tiesa, „Flash“ pašalins „ENTER_FRAME“ įvykio klausytoją.

Čia yra mūsų naujas kodas.
stage.addEventListener (Event.ENTER_FRAME, snaigės);

var _Snowflake: mcSnowflake;

_Snowflake = naujas mcSnowflake ();
addChild (_Snowflake);
_Snowflake.x = matematika.daiktas () * 510;
_Snowflake.y = Math.random () * 40;

funkcijos sniegas (įvykis: įvykis): negalioja
{
if (_Snowflake.y> 370 || _Snowflake.x> 550)
{stage.removeEventListener (Event.ENTER_FRAME, snaigės); }
Kitas
{_Snowflake.y + = 5; _Snowflake.x + = matematika.dažnai () * 10; }
}


Kai rašysite tekstą apie savo filmą, snaigės horizontalus judėjimas dabar kinta, nes jis nukrenta į scenos apačią. Išsaugokite savo sniego sceną kaip „SnowScene6.fla“.

Autorių teisės 2018 m. „Adobe Systems Incorporated“. Visos teisės saugomos. „Adobe“ produkto ekrano kopija (-os) perspausdinta gavus „Adobe Systems Incorporated“ leidimą. „Adobe“, „Photoshop“, „Photoshop Album“, „Photoshop Elements“, „Illustrator“, „InDesign“, „GoLive“, „Acrobat“, „Cue“, „Premiere Pro“, „Premiere Elements“, „Bridge“, „After Effects“, „InCopy“, „Dreamweaver“, „Flash“, „ActionScript“, „Fejerverkai“, „Prisidėkite“, „Captivate“, „Flash Catalyst“ ir „Flash“ popierius yra (yra) registruotas (-i) prekės ženklas (-ai) arba „Adobe Systems Incorporated“ prekės ženklas (-ai) JAV ir (arba) kitose šalyse.