en granat

, gøre et raketstyr stil tekst system til din næste kamp,,,,, 6,,,,,,,,,,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, i denne forelæsning vil vi skabe en tekst system svarende til, hvad du ser i mange af rolle­spillende lege.vores gruppe vil dynamisk udviser et ikon for personer, der taler, og vil type hver blok af tekst, bogstav for bogstav.,, endelige resultat forpremiere, her er et eksempel på den tekst, vi skal skabe system:,,,,,,, trin 1: oprettede - fil, skabe en ny flash fil (actionscript 3).din film, der kan variere afhængigt af din kamp.for det demo - jeg sætter min film som 500x300, med en sort baggrund og 30 fps.,,,,, trin 2: tilføje en baggrund image, vil du sandsynligvis vise teksten modul over et billede eller aktivering af dit spil.for det demo - jeg bruger bare et billede, smed jeg sammen med nogle af personerne fra mit spil stående i et område af sne.,, læg din baggrund billede på et lag "sammenhæng".,,,,, trin 3: skabe, rpgtext, movieclip, skabe en ny movieclip på etape (indsæt > movieclip) ved navn "rpgtext." i symbolet egenskaber check "eksport til actionscript" og fastsætte klasse navn til "rpgtext".vi bruger denne klasse navn senere at forbinde kode til det movieclip.,,,,, klik, okay.hvis du ser en advarsel, at klasse definition kunne ikke findes, det er okay.det betyder bare, at der ikke er nogen regler til at forbinde dette symbol (endnu).,, giv din movieclip tilfælde navn "rpgtext." kan du huske, når jeg taler om "rpgtext" (store) jeg henviser til klassemøder (eller movieclip); "rpgtext" (små) er navnet på en, f.eks. for denne klasse, trin 4: tilføje en tekst panel baggrund, tegne et rektangel i din nye, rpgtext, movieclip.dette er baggrunden for karakter ikonerne og tale boble.design, som du kan lide det, men det bør dække hele bredden af din film og kort nok, at det dækker ikke for meget af dit spil.,, jeg lavede min 500px bred (matcher min film) og 100px højt.jeg har fyldt den med en stigning fra򢰪 til󴈿 (mørkegrå til lettere grå).,,,,,, hurtigt tip:, at tegne et rektangel af en bestemt størrelse, udvælge rektangel, værktøj og alat - klik på det tidspunkt.du får en dialog i rubrik, hvor du kan træde dimensioner af din rektangel.,, løntrin 5: karakter ikon movieclip, skaber et nyt lag i, rpgtext, movieclip kaldet "ikon" skabe en ny movieclip i dette lag "charactericon" og give det den instans navn "charactericon." i, charactericon, movieclip skabe to nye lag: "billeder" og "etiketter." ikoner lag vil indeholde alle dine karakter ikoner (hver på sin egen keyframe) og etiketter lag indeholder ramme etiketter, som vi vil bruge til at vise tegn på det rigtige tidspunkt.,, import (eller drage i flash) et ikon for hver af de personer i dit spil, som vil tale.for det demo - jeg begik en 75x75px jpg til hver af mine karakterer.tilføje ikoner for, billedsymboler, lag, som gør den nye keyframe for hver art.den rækkefølge, hvori de optræder ikke er vigtigt, men sørg for, at hver enkelt symbol anbringes i x: 0, y: 0, så de ikke ser ud til at hoppe rundt, når du skifter tegn.,,,,, trin 6: tilføje ramme etiketter, skabe en ny keyframe på hvert billede af din, etiketter, lag.en hurtig måde at gøre det på er at vælge alle de billeder og ramte f6.,, udvælger hver etiket keyframe en efter en, og tilføje en ramme etiket, der svarer til navnet på den person, der optræder i dette billede.hvis du vil tilføje et par tomme stel (f5), mellem din keyframes, det vil gøre det lettere at læse den ramme, etiketter, bare sørg for din, etiketter, keyframes blive stillet op med din, billedsymboler, keyframes.,,,,, sørg for, at hver af deres mærker har et unikt navn.hvis du har to bogstaver med samme navn, du bliver nødt til at skelne dem på en eller anden måde ('john_l "og" john_k f.eks.), trin 7: henlede tale boble, går tilbage til, rpgtext, movieclip og skabe et nyt lag, kaldet "textbackground.", drager en tale boble.jeg har tegnet en simpel boble med groft tildannet hjørner, men du kan lave din ser, hvad du vil have.gør det stort nok til, at det fylder det meste af baggrunden rektangel og sidder pænt ved siden af din karakter ikoner.,, udvælge deres indlæg boble og omdanne det til et movieclip (ændre > konvertere til symbol).nu er det en movieclip kan vi tilføje en drop shadow filter til det.jeg satte mit sorte, 50% styrke, 5px slør og 1px afstand.,,,,, trin 8: tilføje den dynamiske tekstfelt, skaber et nyt lag, der er i den, rpgtext, movieclip kaldet "tekst." bruge teksten værktøj til at udarbejde en tekst boks.det passer ind i kanterne af talen boble grafisk.,,, det er en multiline dynamiske tekstfelt med instans navn "txt." kan du huske at forankre den skrifttype, hvis du ikke bruger systemet tekst.jeg bruger 13pt kurer.,,,,, trin 9: tilføje, næste, har vi brug for en måde for spiller videre til næste tekst blok, når de spiller har læst.lad os tilføje en lille "næste" knap i hjørnet.,, skabe et nyt lag, der er i den, rpgtext, movieclip kaldet "knap". tilføje en ny knap symbol, kaldet "b_next." udformning af fire lande i din knap, som du vil.jeg brugte en lille ned pil som knap symbol, for jeg kan se, at i mange kampe og påtage sig spillere er bekendt med det, sæt din knap i nederste højre hjørne på toppen af din tale boble.du skal ikke bekymre dig om at give det en instans navn.jeg forklarer det senere.,,,,, trin 10: skabe dokument klasse, skabe en ny actionscript filen "vigtigste. som" og tilføje denne kodeks for at skabe den tomme skal for klassen:,, pakke (import flash.display.movieclip; offentlige klasse vigtigste udvider movieclip (//konstruktøren offentlig funktion main() {}}},, som de vigtigste dokument klasse i - fil.hvis du vil have en hurtig genopfriskningstræning på ved hjælp af et dokument, klasse, det hurtigt tip fra michael williams er en af de bedste forklaringer, jeg har set.,, trin 11: tilføje teksten blokke,, hvis du er med i et spil du vil sandsynligvis vælge at gøre det andre steder, men nu kan vi tilføje det, at dokumentet klasse.tilføje denne kode dennes funktion i den vigtigste, klasse:,, var textblocks: array = nye system (["knægt", "se, en robot."] ["abe", "bleep-bloop.jeg er en selvstændig botaniske ingeniør.du kan kalde mig, abe. "] [" knægt "," hej, abe.mød frosty the snowman. "] [" kolde "," happy birthday! "] ["abe", "beep-bip.hej, frosty. "] [" abe "," gør dette frø tilhører dig? "] ["frø", "kvæk..."] ["knægt", "nej, jeg har aldrig set ham før.fryser du ikke mig? "] ["frø", "kvæk..."]); rpgtext.textblocks = textblocks;, her skal vi skabe en todimensional array (et system, der indeholder andre systemer), til at holde manuskriptet til vores scene.før du ændre noget, at se på, hvordan det er struktureret.hvert system er en særskilt tekst blok, der indeholder to elementer.det første er karakter navn, og den anden er den tekst, som han vil tale.teksten i blokke, er opført i den rækkefølge, de kommer med i den scene.,, sidste linje sender bare den, textblocks, system til, rpgtext, movieclip (huske "rpgtext" er den instans, navnet på den rpgtext movieclip på scenen.mere om det senere.,, bare klippe det afsnit, der passer til din scene.pas på, at tegnet navne svarer nøjagtigt til de navne du anvendes til rammen etiketter i charactericon movieclip.,, trin 12: skabe rpgtext klasse, er vi klar til at begynde at skrive koden for rpgtext klasse.,, skabe en ny actionscript fil, der hedder "rpgtext." og det kode:,, pakke (import flash.events.event; import flash.events.mouseevent; import flash.display.movieclip; import flash.media.sound; offentlige klasse rpgtext udvider movieclip (private konstant taler: int = 0, private i denne tekst: int = 1; private var _currenttextblockindex: int = 0, private var _currenttextblock: string; private var _textblocks: system; //konstruktøren offentlige funktion rpgtext() {}), det er bare en grundlæggende skal for klassen.det gør ikke noget, men lad os se på, hvad der:,,, de første linjer er import af nogle af de klasser, er vi nødt til, i klasse erklæring vi udvider den movieclip klasse.vi er nødt til at gøre det, fordi denne klasse er knyttet til rpgtext movieclip i biblioteket (se trin 3). siden har vi to konstanter, taler, og tekst, og at vi kan bruge til at få taleren navn og tekst fra textblocks system, der blev oprettet i det foregående trin.,, variabel, _currenttextblockindex, vil følge som blok af tekst, er vi i øjeblikket.,, _currenttextblock, afholder den egentlige tekst.,, _textblocks, vil tage hele den vifte af tekst blokke. endelig er der tomt klasse konstruktøren.,,, (note: bruger jeg understreger i min variabel betegnelser for private variabler.), trin 13:, textblocks, setter funktion, da vores, _textblocks, variable er privat, vi får brug for en måde at få det variable fra de vigtigste, klasse, hvor vi sætter teksten blokke.vi vil gøre det ved at skabe en "setter" funktion.tilføj det til rpgtext klasse lige under dennes funktion:,, offentlig funktion, der er fastsat textblocks (txt: system): ugyldig (_textblocks = txt;},, det gode ved maskinsættere i flash, er, at vi kan få adgang til denne funktion, som om det var en offentlig ejendom i rpgtext klasse.hvilket er præcis, hvad vi gjorde i linje 21 af de vigtigste klasse trin 11:,, rpgtext.textblocks = textblocks;,, trin 14: tilføje, updatetext, funktion, tilføje denne funktion til rpgtext klasse:,, privat funktion updatetext e: begivenhed): ugyldig (hvis (txt.text.length < _currenttextblock. længde) (txt.text = _currenttextblock. substr (0, txt. tekst. længde + 1)} andre (removeeventlistener (event.enter_frame, updatetext); filltext();}}, er det den væsentligste funktioner i den klasse, hvor bogstav for bogstav maskinskrivning finder sted.lad os se på, hvad der sker her:,,, linie 27: denne funktion accepterer en begivenhed som en parameter, fordi vi vil kalde det ved hjælp af en enter_frame begivenhed.,, linje 28: vi sammenligner længde (antal personer), der i øjeblikket befinder sig i, txt, tekstfelt til antal tegn i, _currenttextblock, snor.,, linje 29: hvis der er færre personer i tekstfeltet så bruger vi den, substr, en metode til at få alle personerne fra begyndelsen af _currenttextblock, op til en mere end antallet af personer i den nuværende tekst.vi sætter alle disse tegn i tekstfeltet, som er virkningen af at tilføje et mere karakter til udgangen af teksten i tekstfeltet.,, linje 31: hvis der er det samme antal personer i den tekst, som de, _currenttextblock, snor, fjerne enter_frame begivenhed, der opfordrer denne funktion.,, linje 32: ring, filltext, funktion.vi vil skrive denne funktion i den næste skridt.,,, trin 15: tilføje, filltext, funktion, tilføje denne funktion til rpgtext klasse:,, privat funktion filltext e: mouseevent = null): ugyldig (txt.text = _currenttextblock; hvis (_currenttextblockindex < _textblocks. length-1) (addeventlistener (mouseevent.click, nexttextblock)}}, er hovedformålet med denne funktion er at udfylde, txt, tekstfelt med teksten fra, _currenttextblock (linje 37).hvis vi lader animation spille igennem, updatetext, funktion bør tage sig af det, men det er godt at være sikker på at intet gik galt.kan vi også få denne funktion op til vores "næste" knap, at aktører til at springe den tekst, animation og omgående udfylde tekstfelt med hele tekst blok.,, får denne funktion accepterer en mouseevent som argument, men vi sætter sine standardværdi for ugyldig.dette giver os mulighed for at bruge denne funktion med et mouseevent lytter, da det vil acceptere denne begivenhed.da vi giver tilfælde en standardværdi, vi kan også kalde den funktion, uden at sende en begivenhed, som vi gør i slutningen af, updatetext, funktion, efter vi udfylde den tekst, vi kan se, om det er den sidste tekst blok i system (hvis, _currentblockindex, er mindre end antallet af elementer i den, _textblock, system).hvis ikke vi tilføje et klik til at lytte til at udløse en funktion, nexttextblock, som skriver vi næste. trin 16: om det klik til at lytte, kan du huske, da vi skabte "næste" knap, - - og jeg sagde, jeg ikke skulle bekymre mig om at give det et tilfælde?har du bemærket i de sidste skridt, hvordan vi tillagde det klik til at lytte til hele rpgtext movieclip i stedet for den knap?det gør det så kan spilleren klik overalt på movieclip til fremme af teksten.vi behøver ikke engang knap, men jeg vil gerne stille et, så er der noget, der tyder på, at du klik til at fremme den tekst, dette er selvfølgelig kun en personlig præference.hvis du vil have, at du kunne give knap en instans navn og fastgør klik til at lytte til knap i stedet.jeg synes bare, de større ramte område være lettere at anvende.,, skridt 17: tilføje, nexttextblock, funktion, tilbage til arbejdet.tilføje denne funktion til rpgtext klasse:,, privat funktion nexttextblock e: mouseevent): ugyldig (removeeventlistener (mouseevent.click, nexttextblock); txt.text = ""; //klart angivet _currenttextblockindex +; _currenttextblock = _textblocks [_currenttextblockindex] [tekst); //den tekst, charactericon. gotoandstop (_textblocks [_currenttextblockindex] [taler]); //sæt karakter ikon addeventlistener (event.enter_frame, updatetext); //ajourføring af den tekst, addeventlistener (mouseevent.click, filltext)}, de første tre linjer er ret enkelt.fjern mouseevent lytter, klart tekstfeltet, og forøgelse af den, _currenttextblockindex, var at gøre opmærksom på, at den næste tekst blok.,, 47, bruger den tekst, konstant bliver den nuværende tekst snoren fra den, _textblocks, system - og overdrager det til, _currenttextblock,.,, vi bruger, taler konstant at få navnet på rollen.da karakter navne matcher billedet etiketter i vores charactericon, movieclip, vi kan bruge, gotoandstop, sender den, charactericon, movieclip til rammen, der viser, at karakter ikon.,, vi tilføje en begivenhed til at lytte til at begynde at skrive om den nye tekst, streng og så tilføje et klik til at lytte til at løbe, filltext, når movieclip er sammen.,, gå 18: tilføje, starttext, funktion, vi er næsten færdige, vi skal lige tilføje en funktion, som vil få det i gang.vi vil gøre det med en offentlig funktion kaldes "starttext.", da dette er en offentlig opgave, lad os sige det nær toppen af rpgtext klasse, lige under, textblocks, setter:,, offentlig funktion starttext(): ugyldig (_currenttextblock = _textblocks [_currenttextblockindex] [tekst); charactericon. gotoandstop (_textblocks [_currenttextblockindex] [taler]); addeventlistener (event.enter_frame, updatetext); addeventlistener (mouseevent.click, filltext)}, ser det bekendt ud?denne kode er næsten den samme som den, nexttextblock, funktion.det er den nuværende tekst og karakter ikon, og tilføjer tilfælde lyttere, updatetext, og filltext,.da denne funktion kun løber, når teksten først starter vi ikke behøver at bekymre sig om, at teksten område eller forøgelse af, _currenttextblockindex, ligesom vi gjorde i, nexttextblock,.,, skridt 19: påberåbe sig, starttext, funktion, har vi nu en offentligt tilgængelig måde at starte tekst.lad os sige det til brug.,, tilføje denne linje til bunden af de vigtigste klasse konstruktøren funktion:,, rpgtext. starttext(),,, det er bare at starttext funktion inden for rpgtext klasse.det burde få alt.,, gå 20: tilføje sunde, burde du være i stand til at afprøve din film nu, og se alt.der er bare én ting mangler. det lyder.,, finde (eller skabe) en sund at spille som teksten er at skrive om.når man vælger en lyd for dette gøre det meget kort, da det vil spille igen og igen, når teksten former.en lille "bum" eller "klik fungerer bedst, for denne virkning, at importere en lyd i biblioteket i dit syn dossier, kontrollerer" eksport til actionscript "og give det den klasse navn" typingsound.,,,,, - - for at få det til at spille, vi behøver kun at tilføje to linjer på rpgtext klasse.først skal vi instantiate lyden.tilføje denne linje i toppen af klassen under de tre andre private variabler:,, private var _typingsound: sunde = nye typingsound();, nu kom til updatetext funktion og tilføje en linje, som rent faktisk vil spille den lyd, hver gang den tekst opdateringer (line 38 nye):,, privat funktion updatetext (e: begivenhed): ugyldig (hvis (txt.text.length < _currenttextblock. længde) (txt.text = _currenttextblock. substr (0, txt. tekst. længde + 1). _typingsound. play();} andre (removeeventlistener (event.enter_frame, updatetext); filltext();}}, gå 21: at det yderligere, at er det for demo.alt skal arbejde på dette punkt, men hvis du ønsker at integrere dette i et spil, du stadig har et arbejde foran dig.,,, afhængigt af hvordan din kamp er oprettet, vil du sikkert gerne trække teksten blokke af dokumentet klasse.du har måske en scene, klasse, at du bruger til at oprette de individuelle samtaler, der forekommer i dit spil, eller i klasse, der har teksten for hver samtale.,,, du vil synes om, hvordan og hvornår teksten modul vil være i dit spil.du vil måske tilføje et mellem animation, der gør det glide ind og ud fra bunden, når en samtale begynder og slutter.vil du også vil lytte til, når samtalen er slut, enten at gemme tekst modul eller indlede den næste samtale.,, da vi allerede er kontrol for at se, om den sidste tekst blok er kommet i, filltext, funktion, du kunne tilføje noget, der behandler afslutningen af samtalen.,, jeg er ikke at medtage disse emner i ministeriet for den måde du gør disse ting vil være specifikke for dit spil.det burde være nok til at få dig i gang., håber jeg, at du kunne lide det.efter en kommentar, og lad mig vide, hvad du tror.

Flash file setup
Background image or animation
RPGText Symbol Properties
Background Rectangle
Character Keyframes
Adding Frame Labels
Speech Bubble Graphic
Dynamic Text Field Properties
Complete RPGText MovieClip
Sound Export Settings



Previous:
Next Page: