Ülesandeks on panna elukas liikuma lava alumisest osast suunaga üles, kusjuures tervet liikumist saadaks väike värin eluka kehas. Kuidas seda teha? Põhimõtteline lahendus on siin:
- Paigalda sündmusetuvastaja ja -töötleja sündmusele Event.ENTER_FRAME
- Sündmusetöötlejas liiguta elukat y-telge pidi ülespoole ja liiguta tema x-telje asendit juhuslikult
Lihtne?
On küll lihtne. Lahenda ülesanne kahes järgus:
- Pane muutujate abil elukas liikuma lava alumisest osast mööda y-telge üles
- Lisa elukale väike juhuslik liikumine x-telje suunas
Muutuja? Tuleta meelde eelmist praktikumi - sa panid oma eluka asukoha sõltuma süsteemsest muutujast mouseX. Muutuja - see on nimeline viit arvuti mälus hoitavatele andmetele. Nagu karp, kuhu saab asju tallele panna kuni neid vaja läheb. Süsteemsed muutujad on süsteemis juba olemas, kuid muutujaid saad sa ka ise defineerida:
- var muutuja1:int;
- var muutuja2:Boolean = true;
Punktis 1. deklareerime täisarv tüüpi muutuja nimega muutuja1. Punktis kaks deklareerime tõeväärtus tüüpi muutuja nimega muutuja2, algväärtusega true.
Muutuja muutmine toimub omistamisoperaatoriga:
- muutuja1 = 7;
- muutuja2 = false;
Omistamisoperaator omistab muutujale väärtuse.
Lava alumine serv? Laval on kõrgus ja laius. Lava tähistas objekt stage, millel olid parameetrid stageWidth ja stageHeight.
Esimese järgu lahendamiseks on sul nüüd kõik vajalikud vihjed olemas. Muutujatest loe lähemalt artiklist:
'Variables'. Andmetüüpidest saad rohkem infot artiklist
'Data types'.
Teise järgu lahendamiseks on vaja oskust genereerida juhuslikke arve. Klassis
Math on olemas funktsioon
random, mis väljakutsumisel tagastab juhusliku arvu vahemikust [0, 1). See tähendab, et
randomi tulemus võib olla ka 0, aga 1 ta kindlasti ei ole, kuigi võib olla näiteks 0.999999999999999999999.
Kui tahta saada muutujasse xx juhuarvu vahemikus [0, N), kus N on suvaline täisarv, siis piisab kui teha nii:
Kuidas teha juhuarve vahemikus [-3, 3]?
Ka teise järgu lahendamiseks on sul vajaminevad vahendid olemas. Kui oled usin, siis paned ka oma eluka silmad värvi vahetama.