Vēja efekts ar Flash CS3 Math.random ()
Tagad, kad mūsu zibspuldzē iekrīt sniegpārslaR daļiņu sistēma, nedaudz pārveidosim ActionScript 3 kodu. Mūsu pārsla vienkārši nokrīt taisni uz leju. Bet, ja vien nav absolūti vēja, vairums pārslu pārvietojas slīpi. Tāpēc izmantosim nelielu matemātiku, lai mūsu pārsla nedaudz nokristu pa labi, kad tā nokrīt. Lai pievienotu vairāk reālisma, mēs vēlamies, lai mainās horizontālās kustības apjoms, jo sniegpārsla padara to lejā uz skatuves.

Atcerieties, ka vienā no mūsu iepriekšējām šīs sērijas pamācībām horizontāli gar skatuves augšdaļu mēs izvietojām pārslas dažādās pozīcijās. Mēs to izdarījām, katrai pārslai iestatot dažādas vērtības X pozīcijai. Tātad šajā apmācībā mēs atkal varam izmantot to pašu _Snowflake.x īpašumu, lai kontrolētu animācijas horizontālo kustību.

Otrkārt, kad mēs izveidojām savu pārslu, mēs pārsēja sākotnējās X un Y pozīcijas iestatījām uz izlases numuru.

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

Mēs varam izmantot to pašu Math.random (), lai kontrolētu nejaušas horizontālas kustības daudzumu. Vai esat uzminējis, kas notiks tālāk?

Mēs zinām, ka katrā mūsu Flash filmas kadrā mēs saucam par sniegputeņa funkciju.

stage.addEventListener (Event.ENTER_FRAME, sniegputenis);

Šī funkcija palielina īpašību_Snowflake.y par 10 katram kadram. Tas ir tas, kas pārvieto pārslu lejā uz skatuves.

_Snowflake.y + = 10;

Bet tas ir pārāk ātri, lai mēs redzētu smalku horizontālo kustību, kuru mēs pievienosim nākamajai. Tātad, nedaudz palēnināsim to, mainot 10 uz 5.

_Snowflake.y + = 5;

Tagad mēs varam izmantot to pašu kodu, lai pārslu pārvietotu horizontāli pa labi. Viss, kas mums jādara, ir jāmaina vietne_Snowflake.y uz_Snowflake.x.

_Snaflake.x + = 10;

Tagad sniegpārsla pārvietosies 10 pikseļus pa labi un 5 pikseļus uz leju pie katra mūsu Flash filmas kadra. Bet reālāk būtu, ja sniegpārsliņas horizontālā kustība būtu nejaušāka, jo tas padara ceļu uz skatuves. Mēs to varam izdarīt, aizstājot 10 ar izlases numuru no 0 līdz 9. Lai to izdarītu, izmantosim Math.random ().

_Snowflake.x + = Math.random () * 10;

Tālāk mēs pievienojam šo jauno kodu sniegputeņa funkcijai un to iegūstam.

ja (_Snowflake.y> 370)
{stage.removeEventListener (Event.ENTER_FRAME, sniegputenis); }
cits
{_Snowflake.y + = 5;
_Snowflake.x + = Math.random () * 10;}

Bet tagad, kad mēs pārvietojam pārslu pa labi, tas galu galā varētu pārsniegt ekrāna labo pusi. Atcerieties, ka mēs apturējām sniegpārslu, ja tā nokrita zem skatuves.

ja (_Snowflake.y> 370)

Mēs to varam arī apturēt, ja tas pārsniedz skatuves labo pusi. Pievienosim to mūsu nosacītajam paziņojumam. Tā kā mēs vēlamies, lai animācija apstātos, ja ir taisnība, vai nu pirmais, vai otrais no šiem nosacījumiem, mēs varam izmantot || operators starp diviem apgalvojuma if nosacījumiem.

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

Ja kāds no šiem nosacījumiem ir taisnība, Flash noņems ENTER_FRAME notikumu klausītāju.

Šeit ir mūsu jaunais kods.
stage.addEventListener (Event.ENTER_FRAME, sniegputenis);

var _Snowflake: mcSnowflake;

_Snowflake = jauns mcSnowflake ();
addChild (_Snowflake);
_Snowflake.x = Math.random () * 510;
_Snowflake.y = Math.random () * 40;

funkcijas sniegputenis (notikums: notikums): spēkā neesošs
{
ja (_Snowflake.y> 370 || _Snowflake.x> 550)
{stage.removeEventListener (Event.ENTER_FRAME, sniegputenis); }
cits
{_Snowflake.y + = 5; _Snowflake.x + = Math.random () * 10; }
}


Kad sūtāt tekstu filmai, sniegpārsla tagad mainīs horizontālo kustību, jo tā nokrīt skatuves apakšā. Saglabājiet savu sniega ainu kā SnowScene6.fla.

Autortiesības 2018 Adobe Systems Incorporated. Visas tiesības aizsargātas. Adobe produkta ekrānuzņēmums (-i) ir pārpublicēts ar Adobe Systems Incorporated atļauju. 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 ir / ir vai nu [a] reģistrēta preču zīme (-es), vai Adobe Systems Incorporated preču zīme (-es) Amerikas Savienotajās Valstīs un / vai citās valstīs.


Video Instrukcijas: ActionScript 3 Maths and Random Numbers (Maijs 2024).