forståelse spillet loop

, forstå spillet loop - basix,,,,, 1,,,,,,,,,,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, næsten hver eneste kamp kan tænkes at have en hovedfunktion, som indeholder alle spillets logik, og som er løber, enten når brugeren har noget, eller efter en vis tid.denne cyklus af de samme grundlæggende funktion igen og igen bliver kaldt, spil noget, og det er afgørende at forstå for alle slags spil udvikling.,,, du sikkert har spillet spillet held (eller slanger og stiger, som vi kalder det i det forenede kongerige), (fotos. incurable_hippie på flickr), hver spiller ruller terningerne (eller spinder den spinner) og bevæger sig fremad, antallet af pladser er angivet.den firkantede de lander på direkte at glide bagud eller kravle tilbage flere rum.de spiller, vinder den kamp, når de kommer til den endelige square. så i ovenstående billede, der lander på. 6. gør du klatre firkanter til square 10 lande på square 19. gør du glider tilbage 15 pladser til kvadrat 4 og landing på plads 64 betyder, du vinder, du er vel nu. at spille én spiller, til praksis.du gør det samme som ovenfor, igen og igen, indtil de når. 64.hvordan ville du være det?du ville sikkert starte med at oprette et system til opbevaring af værdierne af de pladser.de fleste ville være nul, men nogle vil indeholde et positivt tal (med angivelse af en stige, eller et negativt tal:,, note: det er pseudocode, ikke as3, var specialsquares: array = [...], specialsquares [0] = 0; //pladsen spillerne begynder før 1. specialsquares [1] = 0.specialsquares [6] = + 4.specialsquares [19] = - 15, og så videre.så, vil du have en funktion til at flytte spiller baseret på antallet af døde:, funktion moveplayer (pladser: antal) (newsquare = currentsquare + rørfirkantstål newsquare + = specialsquares [newsquare] currentsquare = newsquare;}, kan du så få det ind i en større rolle som helhed:, funktion takeaturn() {dicenumber = stikprøver (1, 6); //tilfældige tal mellem 1 og 6 moveplayer (dicenumber); hvis (currentsquare = = 64) (//aktør har vundet!game over}} denne funktion, takeaturn(), sammenfatter centrale spil logik for enkelt spiller held.men hvordan kan vi rent faktisk får denne funktion til at løbe?der er flere muligheder:,, løb den funktion, baseret på spiller input, kunne vi sætte en knap på skærmen, og det kræver, takeaturn(), hver gang det er faldet.har du nogensinde spillet facebook scrabble eller ord med venner, du har set denne mulighed i praksis.,, løb den funktion, baseret på den tid, der er gået, vi kunne gøre, takeaturn(), løb hver 60 sekunder. faktisk, at denne mulighed er en smule mere kompliceret, end det ser ud til.i praksis har vi aldrig nogen kampe uden nogle spiller input med ingen interaktion, kan det ikke betragtes som en leg.men nogle kampe har et element af "tidsplan".mener du, farmville spilleren, plante dine afgrøder, og derefter hvert par minutter (timer), der udvikler sig en smule, fra frø til skud til frugt.og i nogle former for civilisationen, får du en fastsat tid (5 minutter) for at gøre alle dine træk for en "gå", når de fem minutter er gået, den centrale spil logik funktion er udløst.,, gøre begge dele, nogle spil, anvende en blanding af disse to muligheder: f.eks. mafia - krige, er en ressource, kaldet "energi", der fylder en enhed hver fem minutter, du tager handlinger i kampen ved hjælp af denne ressource, så de centrale spil logiske funktion er udløst af en bruger aktion, og det er kun begrænset af tid. det er et mønster, fælles for de fleste spil: et stykke kode indeholder de centrale spil logik er udløst gentagne gange.vi kalder den, spil noget. der er en betegnelse for aktionen eller det tidsrum, der udløser den vigtigste kamp logik kode som: en, tik, lyder et ur er). så i civilisation, tik er hvert femte minut.i ord med venner, spiller din tur, årsager, en tæge.med andre ord, spillet loop løber én gang pr. tik.,, hvad med mario?super mario brothers ser ikke ud til at passe ind i en af disse kategorier.mario svarer til deres bidrag.og alle mulige ting sker, uden at du behøver at gøre noget (goombas gå rundt, uret tæller ned, genstande falder).er der to spil loops?nej, der er kun én, og den bliver udløst udelukkende af tid, - - men med et kryds af kun en brøkdel af et sekund. i civilisation, du har en frist på fem minutter til input alt, hvad du ønsker at gøre i de nuværende tur, før spillet "flåter og styrer spillet her baseret på alle dine input.så hvis du siger til gengæld 23, at du vil have din krigere til at angribe en hjort, derefter 24. alle er ved at blive dyrekød til middag. det er det samme med mario.hvis du trykker på knappen i et kryds ud, så i den næste udgave af spillet loop, mario vil begynde at hoppe, bemærke, at du ikke har tid springet presse til at opstå som det centrale spil logik funktion er udløst... alle dine handlinger under en halv periode registreres, og i den næste udgave af spillet loop.,, er, at alt, der kontrolleres gennem leg nu?alle spillets logik er behandlet i spillet loop.men der er mere til et spil end dens logik, grafik som det vigtigste eksempel., trækning, grafik på skærmen er hårdt arbejde for computeren.lad os antage, at du har en sag, spil med et kryds på 1 /60 af en anden; det bør gøre spillet føler, det er at reagere fluidly at spilleren er kontrol.men hvad sker der, hvis deres computer er for langsom til at løbe hele koden for spillet logik (som input til simulering af tyngdekraften, at ai rutiner), og gøre alt for at skærmen i 1 /60 af en anden?i dette scenario, vi kan benytte to separate loops: et spil og en drage sløjfe.så kunne vi løbe den drage loop på et meget lavere hyppighed end kampen loop; lad os opfriske skærmen så ofte, dvs. hver 1 /30 af en anden, størrelsen af den forarbejdning, magt, der kræves i spillet, kan variere fra niveau til niveau.tage en duel: de første par niveauer vil have meget få skibe på skærmen, at lindre spiller i langsomt, mens det sidste niveau kunne have snesevis af fjendens skibe og hundredvis af kugler flyver rundt om den samme scene på én gang.spillet loop er at finde ud af, hvordan disse genstande bør bevæge sig, og den trækker loop er at gøre hver, så det kan have været muligt at køre begge spillet loop og henlede loop hver 1 /60 af en anden i starten af spillet, sidst noget er at give. det er generelt lettere at bremse dem loop end kampen loop, hvis du skal vælge.om tilpasning af de spil, loop er tik længde: tilpasning af alt i dit spil, der er baseret på tid, hvis mario kører med en hastighed på 20 pixels /andet, og du designer spillet med en halv længde på 1 /60 af en anden, så er du nødt til at flytte ham 1 /3 af en pixel pr. tik.hvis du ændrer spillet loop har en halv længde på 1 /30 af en anden, så er du nødt til at tilpasse denne til 2 /3 af en pixel pr. tik. og det er en simpel ændring i forhold til at holde fysik beregninger og ai rutiner konsekvent. af denne grund kampe ofte har til formål at holde kampen loop er tik konsekvent og bremse den drage loop om mere magt, der er brug for.hvis du nogensinde har gjort vedrørende fps - tæller (kort for billeder pr. sekund, antallet af gange gøre loop løber pr. sekund) i første person skyderen, har du set det skifter afhængigt af, hvor meget der er på skærmen, henlede loop er opdateringsfrekvens får justeres automatisk.kampen kan se juddery... som en live videoer om en langsom internetforbindelse, - - men hvis det er at køre på en computer med meget mindre magt end kampen udviklere havde i tankerne, alle objekterne i spillet verden vil fortsætte og reagere på den korrekte hastigheder. for en stor artikel om, hvordan flash - beskæftiger sig med dette, tjek sean christmann stilling på "elastiske væddeløbsbane.,






Previous:
Next Page: