Flash on populaarne brauseripõhiste videomängude vorming, mida on näha sellistel saitidel nagu Newgrounds ja Kongregate. Kuigi Flash-vormingut kasutatakse kasvavate mobiilirakenduste tõttu aeglaselt, tehakse sellega endiselt palju kvaliteetseid mänge. Flash kasutab ActionScripti, kergesti õpitavat keelt, mis annab teile kontrolli ekraanil kuvatavate objektide üle. See Selgitatud artikkel õpetab teile, kuidas õppida põhilist Flash-mängu looma.
1
Kujunda oma mäng. Enne kodeerimise alustamist aitab see omada ligikaudset ettekujutust sellest, mida soovite oma mänguga teha. Flash sobib kõige paremini lihtsate mängude jaoks, seega keskenduge mängu loomisele, millel on mängija jaoks vaid mõned mehhanismid. Proovige enne prototüüpimise alustamist silmas pidada põhižanri ja mõningaid mehaanikaid. Lisateavet videomängude arendamise planeerimisetappide kohta leiate sellest juhendist. Levinud Flash-mängud hõlmavad järgmist: lõputud jooksjad: need mängud liigutavad tegelast automaatselt ja mängija vastutab takistuste üle hüppamise või muul viisil mänguga suhtlemise eest. Mängijal on juhtnuppude osas tavaliselt ainult üks või kaks valikut. Kaklejad: need on tavaliselt küljelt kerimine ja ülesandeks on mängijal edasiliikumiseks vaenlasi võita. Mängija tegelaskujul on sageli mitu käiku, mida nad saavad vaenlaste alistamiseks sooritada. Mõistatused: nendes mängudes palutakse mängijal lahendada mõistatusi, et iga taset ületada. Need võivad ulatuda Match-3 stiilist (nt Bejeweled) kuni keerukamate mõistatuste lahendamiseni, mida tavaliselt leidub seiklusmängudes. RPG-d: need mängud keskenduvad tegelaskuju arendamisele ja edasiliikumisele ning lasevad mängijal liikuda läbi mitme erineva vaenlase tüüpi keskkonna. Võitlusmehaanika on RPG-de vahel väga erinev, kuid paljud on käigupõhised. RPG-sid võib olla oluliselt keerulisem kodeerida kui lihtsat märulimängu.
2
Siit saate teada, milles Flash silma paistab. Flash sobib kõige paremini 2D-mängude jaoks. Flashis on võimalik luua 3D-mänge, kuid see on väga arenenud ja nõuab märkimisväärset keeleoskust. Peaaegu iga edukas Flash mäng on olnud 2D. Flash-mängud sobivad kõige paremini ka kiireteks seanssideks. Seda seetõttu, et enamik Flash-mängijaid mängib siis, kui neil on vähe vaba aega, näiteks pausidel, mis tähendab, et mänguseansid on tavaliselt 15 minutit või vähem.
3
Viige end kurssi ActionScript3 (AS3) keelega. Flash-mängud on programmeeritud AS3-sse ja mängu edukaks loomiseks peavad teil olema põhiteadmised selle toimimisest. Saate luua lihtsa mängu, millel on algeline arusaam, kuidas AS3-s kodeerida. Amazonis ja teistes poodides on saadaval mitu raamatut ActionScripti kohta ning palju õpetusi ja näiteid veebis.
4
Laadige alla Flash Professional. See programm maksab raha, kuid on parim viis Flash-programmide kiireks loomiseks. Saadaval on ka teisi valikuid, sealhulgas avatud lähtekoodiga valikuid, kuid neil puudub sageli ühilduvus või kulub samade ülesannete täitmiseks kauem aega. Flash Professional on ainus programm, mida vajate mängude loomise alustamiseks.
5
Saate aru AS3 koodi põhilistest ehitusplokkidest. Põhimängu loomisel kasutate mitut erinevat koodistruktuuri. Igal AS3 koodil on kolm peamist osa: Muutujad – teie andmeid hoitakse nii. Andmed võivad olla numbrid, sõnad (stringid), objektid ja palju muud. Muutujad määratletakse koodiga var ja need peavad olema üks sõna.var playerHealth:Number = 100;// “var” tähistab seda, et defineerite muutujat.// “playerHealth” on muutuja nimi.// “Number” on andmetüüp.// “100” on muutujale määratud väärtus.// Kõik actionscripti read lõpevad tähega “;”Sündmuste käitlejad – Sündmuste töötlejad otsivad konkreetseid juhtumeid ja teatavad seejärel ülejäänud programmile. See on mängija sisestamiseks ja koodi kordamiseks hädavajalik. Sündmuste töötlejad kutsuvad tavaliselt funktsioone funktsioonidele.addEventListener(MouseEvent.CLICK, swingSword);// “addEventListener()” määrab sündmuste käitleja.// “MouseEvent” on sisendi kategooria, mida kuulatakse.// “.CLICK” on konkreetne sündmus kategoorias MouseEvent.// “swingSword” on funktsioon, mis kutsutakse välja sündmuse toimumisel.Funktsioon – märksõnale määratud koodilõigud, mida saab hiljem välja kutsuda. Funktsioonid haldavad suuremat osa teie mängu programmeerimisest ja keerukatel mängudel võib olla sadu funktsioone, samas kui lihtsamatel mängudel võib olla vaid mõni. Need võivad olla mis tahes järjekorras, kuna need töötavad ainult siis, kui neid kutsutakse.function swingSword (e:MouseEvent):void;{ //Sinu kood läheb siia}// “funktsioon” on märksõna, mis kuvatakse iga funktsiooni alguses .// “swingSword” on funktsiooni nimi.// “e:MouseEvent” on lisatud parameeter, mis näitab, et funktsiooni // kutsutakse sündmuste kuulajast.// “:void” on väärtus, mis tagastatakse funktsiooni järgi. Kui väärtust// ei tagastata, kasutage :void.
6
Loo objekt. ActionScripti kasutatakse objektide mõjutamiseks Flashis. Mängu loomiseks peate looma objektid, millega mängija suhtleb. Sõltuvalt loetavatest juhenditest võidakse objekte nimetada spraitide, näitlejate või filmiklippideks. Selle lihtsa mängu jaoks loote ristküliku. Avage Flash Professional, kui te pole seda juba teinud. Looge uus ActionScript 3 projekt. Klõpsake paneelil Tööriistad ristküliku joonistamise tööriista. See paneel võib olla erinevates kohtades, olenevalt Flash Professionali konfiguratsioonist. Joonistage stseeni aknasse ristkülik. Valige ristkülik valikutööriista abil.
7
Määrake objektile omadused. Kui äsja loodud ristkülik on valitud, avage menüü Muuda ja valige “Teisenda sümboliks”. Võite ka otseteena vajutada klahvi F8. Aknas “Convert to Symbol” andke objektile kergesti äratuntav nimi, näiteks “vaenlane”. Leidke aken Atribuudid. Kui hõljutate selle kohal, on akna ülaosas tühi tekstiväli nimega “Esijuhtumi nimi”. Nimetage see samamoodi nagu siis, kui muutsite selle sümboliks (“vaenlane”). See loob kordumatu nime, millega saab suhelda AS3 koodi kaudu. Iga “eksemplar” on eraldi objekt, mida kood võib mõjutada. Saate juba loodud eksemplari mitu korda kopeerida, klõpsates vahekaarti Teek ja lohistades eksemplari stseenile. Iga kord, kui lisate ühe, muudetakse nime, et näidata, et tegemist on eraldi objektiga (“vaenlane”, “vaenlane1”, “vaenlane2” jne). Kui viitate koodis olevatele objektidele, peate lihtsalt kasutama eksemplari nimi, antud juhul “vaenlane”.
8
Siit saate teada, kuidas saate eksemplari atribuute muuta. Kui olete eksemplari teinud, saate atribuute AS3 kaudu kohandada. See võimaldab teil objekti ekraanil liigutada, selle suurust muuta ja nii edasi. Saate kohandada atribuute, tippides eksemplari, millele järgneb punkt “.”, millele järgneb atribuut ja väärtus: vaenlane.x = 150; See mõjutab vaenlase objekti asukohta X-teljel.vaenlane.y = 150; See mõjutab vaenlase objekti asukohta Y-teljel. Y-telg arvutatakse stseeni ülaosast.vaenlane.rotatsioon = 45; Pöörab vaenlase objekti 45° päripäeva.vaenlane.skaalaX = 3; Venitab vaenlase objekti laiust 3 korda. (-) arv pöörab objekti.vaenlane.skaalaY = 0,5; Pigistab objekti poole kõrguseni.
9
Uurige trace() käsku. See käsk tagastab konkreetsete objektide praegused väärtused ja on kasulik selleks, et teha kindlaks, kas kõik töötab nii nagu peaks. Võimalik, et te ei soovi lõppkoodi lisada käsku Trace, kuid see on kasulik silumiseks.
10
Ehitage ülaltoodud teabe abil põhimäng. Nüüd, kui teil on põhifunktsioonidest põhiteadmised, saate luua mängu, kus vaenlane muudab suurust iga kord, kui sellel klõpsate, kuni tervisele otsa saab.var enemyHP:Number = 100; // määrab alguses vaenlase HP (tervise) väärtuseks 100.var playerAttack:Number = 10; // määrab mängijate rünnaku võimsuse, kui nad klõpsavad. vaenlane.addEventListener(MouseEvent.CLICK, attackEnemy); // Lisades selle funktsiooni otse vaenlase objektile, // toimib funktsioon ainult siis, kui objektil endal // klõpsatakse, selle asemel, et klõpsata suvalises kohas ekraanil. setEnemyLocation(); // See kutsub esile järgmise funktsiooni vaenlase// ekraanile paigutamiseks. See juhtub siis, kui mäng algab. function setEnemyLocation ():void{ vaenlane.x = 200; // nihutab vaenlase 200 piksli kaugusele ekraani vasakult vaenlane.y = 150; // liigutab vaenlast 150 pikslit ekraani ülaosast allapoole vaenlane.rotation = 45; // pöörab vaenlast 45 kraadi päripäeva trace (“vaenlase x-väärtus on”, vaenlane.x, “ja vaenlase y-väärtus on”, vaenlane.y); // Kuvab silumiseks vaenlase praeguse asukoha} funktsioon attackEnemy (e:MouseEvent):void // See loob rünnakufunktsiooni, kui vaenlasel klõpsatakse{ enemyHP = enemyHP – playerAttack; // Lahutab HP väärtusest rünnaku väärtuse, // tulemuseks on uus HP väärtus. vaenlane.skaalaX = vaenlaneHP / 100; // Muudab laiust uue HP väärtuse alusel. // See jagatakse 100-ga, et muuta see kümnendkohaks. vaenlane.skaalaY = vaenlaneHP / 100; // Muudab kõrgust uue HP väärtusjälje alusel(“Vaenlasel on”, vaenlaneHP, “HP vasakul”); //Väljutage, kui palju HP vaenlasel on jäänud}
11
Proovi. Kui olete koodi loonud, saate oma uut mängu testida. Klõpsake menüüd Control ja valige Test Movie. Teie mäng algab ja võite klõpsata vaenlase objektil, et muuta selle suurust. Teie jälgimise väljundid kuvatakse väljundaknas.
12
Siit saate teada, kuidas paketid töötavad. ActionScript põhineb Java-l ja kasutab väga sarnast paketisüsteemi. Paketid võimaldavad salvestada muutujaid, konstante, funktsioone ja muud teavet eraldi failidesse ning seejärel importida need failid oma programmi. Need on eriti kasulikud, kui soovite kasutada kellegi teise välja töötatud paketti, mis muudab teie mängu loomise lihtsamaks. Sellest juhendist leiate lisateavet selle kohta, kuidas paketid Javas töötavad.
13
Ehitage oma projekti kaustad. Kui loote mitme pildi ja heliklipiga mängu, peate oma mängu jaoks looma kaustastruktuuri. See võimaldab teil hõlpsalt salvestada oma erinevaid elemente ja salvestada erinevaid pakette, kuhu helistada. Looge oma projekti jaoks aluskaust. Põhikaustas peaks teil olema kaust “img” kõigi oma kunstivarade jaoks, kaust “snd” kõigi helivarade jaoks ja kaust “src” kõigi mängupakettide ja koodi jaoks. Looge ” Mäng” kaustas “src”, et salvestada oma konstantide faili. See konkreetne struktuur pole vajalik, kuid see on lihtne viis oma töö ja materjalide korraldamiseks, eriti suuremate projektide puhul. Ülalkirjeldatud lihtsa mängu jaoks ei pea te katalooge looma.
14
Lisage oma mängule heli. Heli ja muusikata mäng muutub mängija jaoks kiiresti igavaks. Kihtide tööriista abil saate Flashi objektidele heli lisada. Lisateavet leiate sellest juhendist.
15
Looge konstantide fail. Kui teie mängul on palju väärtusi, mis jäävad kogu mängu jooksul samaks, saate luua faili Constants, et salvestada need kõik ühte kohta, et saaksite neid hõlpsalt kasutada. Konstandid võivad sisaldada selliseid väärtusi nagu gravitatsioon, mängija kiirus ja mis tahes muud väärtused, mida peate võib-olla korduvalt kasutama. Kui loote konstantide faili, tuleb see paigutada teie projekti kausta ja seejärel paketina importida. Oletame näiteks, et loote faili Constants.as ja asetate selle oma Mängude kataloogi. Selle importimiseks kasutage järgmist koodi:package{ import Game.*;}
16
Vaadake teiste inimeste mänge. Kuigi paljud arendajad ei avalda oma mängude koodi, on mitmeid projektiõpetusi ja muid avatud projekte, mis võimaldavad teil näha koodi ja seda, kuidas see mänguobjektidega suhtleb. See on suurepärane võimalus õppida mõningaid täiustatud tehnikaid, mis aitavad teie mängul silma paista.