, skabe en ballon - kamp i enhed ved hjælp af mikrofonen,,,,, 43,,,,,,,,,,,,,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,,,,, hvad du vil lave,,, indførsel, i denne forelæsning, vil du lære at skabe et 2d spil med c -og enhed.vi skal udnytte enhed mikrofon, støtte til at forbedre gameplay af spillet.målet med spillet er enkle, på den anden side af det niveau, ved at undgå hindringer på vejen.spilleren kan flytte de væsentligste karakter ved at blæse på anordningen er mikrofon, går det opad.,, du vil lære følgende aspekter af enhed spil udvikling i denne lektion:,, at oprette et 2d - projektet i enhed, der importerer nisser, mikrofon kontrol, der arbejder med fysik sammenstød, 1. oprette en ny enhed projekt, åbne enhed og udvælge , nyt projekt, fra , fil, menu til åbnes nye projekt dialog.fortæl enhed, hvor du vil redde projektet og fastsætte, , nedsat misligholdelser for:, menu til 2d,.,,, , 2. bygge kulisser, i løbet af de næste skridt, du er forelagt enhed brugergrænseflade.sat projektet op til din foretrukne platform ved at vælge , bygge kulisser, fra , fil, menu og udvælgelse af target - platform.,,,,, 3. enhed brugergrænseflade, inden vi begynder, så sørg for, at det , 2d, knap i , scene, panel er fremhævet.du kan også ændre den nuværende beslutning i , spil, panel.,,,,,,, du skal også se enhed er arbejdsrum paneler, som vi kan bruge i denne forelæsning.tag et øjeblik til at udforske enhed brugergrænseflade, f.eks. , scene,,,,,,,,,, hierarki, aktiver, og , inspektør.vi bruger dem tit i denne forelæsning.,, 4. spil interface, vores kamp er brugergrænseflade skal være ligetil.den næste skærmbillede giver et overblik over de aktiver, vi bruger, og hvor spillets endelige user interface vil ende med at se. kan du finde de aktiver, vi bruger i kilden filer på github.,,,,,, 5. programmeringssprog, du kan bruge en af tre programmeringssprog, når de bruger enhed c #,, unityscript, en ændring af javascript, bøh.hver af disse programmeringssprog har sine fordele og ulemper, og det er op til dem at afgøre, hvilken en du vil.min personlige præference går til cprogrammeringssprog, og det er det sprog, jeg vil bruge denne forelæsning.,, hvis du beslutter at anvende en anden programmeringssprog, så sørg for at tage et kig på enhed er manuskript - eksempler.,, 6. aktiver & lydeffekter. før vi begynder, kodning, er vi nødt til at tilføje de aktiver, den enhed - projektet.du kan gøre dette på flere måder:,,, udvælge , import nye aktiv, som fra , aktiver, menu, tilføje punkter til aktiver mappe i dit projekt, trække og smid aktiver i projektet vindue, efter afslutningen af dette skridt, bør du se aktiver i deres projekt er , aktiver, folder i , projekt panel.,, vi bruger en række lyder til at skabe en stor audial erfaring.de gode virkninger, der anvendes i denne forelæsning blev indhentet fra freesound. org.,, 7. baggrund, begynde med at trække og faldende baggrund i , hierarki, panel.det vil automatisk blive optaget i , scene, panel.,,,,,, 8. kamera størrelse, fordi , scene, panel er sat til at vise et 2d synspunkt, vil i se, at udvælgelsen af de , vigtigste kamera, i , hierarki, viser en forsmag på, hvad kameraet er vil vise.du kan også se det i , spil, synspunkt.for at gøre hele stedet synlige, der , størrelse, værdi af , vigtigste kamera, til , 4, i , inspektør, panel, som vist nedenfor.,,,,,, 9. sprite blad, vil vi bruge en sprite status for vores spil brugergrænseflade elementer.enheden har en sprite redaktør, der gør brug af holdt en brise.de kunstværker, der anvendes i denne forelæsning blev indhentet fra openclipart. org.,,,,, importere kunstværker, vælge det fra , aktiver, panel, og ændre , sprite tilstand , mulighed for at , flere, i , inspektør, panel.,,,,, tryk på knappen med , sprite redaktør, og fastsætte, type, mulighed for, automatisk.,,,,, 10. ko rigidbody 2d, med den sprite plader skåret og klar til brug, klik den pil, der fremkommer, når den sprite blad er udvalgt og vælge den sprite, koen, hovedpersonen i vores spil.trække det til gerningsstedet til at tilføje det.,,,,, til påvisning af kollisioner, mindst en af kolliderende genstande, skal have en , rigidbody 2d, komponent, der er knyttet til det.at tilføje en til ko, tryk , tilføje komponent, knap i , inspektør, panel. fra listen over bestanddele, udvælge , rigidbody 2d, i , fysik 2d , pkt.,, se , faste vinkel, kasse, for at forhindre, at den ko fra roterende, hvis en kollision forekommer. vi bruger ikke den manglende fysik alvoren i dette spil, men vi vil simulere vores egne.ændring af , tyngdekraft skala, fra , 1, til , 0, for misligholdelse tyngdekraften ikke påvirker objekt.,,,,,, 11. at tilføje colliders, gulvet er brugt til at holde vores vigtigste karakter falder, når vi har tilføjet fysik til kampen.skabe et nyt spil genstand ved at udvælge, skabe tomme, fra , gameobject menuen.,, at ordet afsløre, når personen er ved det, er vi nødt til at tilføje en æske collider 2d, komponent. en accelerator er en fysik form, som definerer det område, som udløser en kollision. vælg ordet spil objekt i, hierarki, åben den , inspektør, panel, og klik , tilføje komponent.fra den liste over komponenter, udvælge , rubrik collider 2d, i , fysik 2d , afsnit.,,,,, ændre, størrelse, ejendom, x og y:: 4. 8, 0, 05, til at skabe en lille rektangel, hvor ko skal placeres. endelig tilføje en , rubrik collider 2d, til ko kamp imod ved at gentage disse skridt.,,,,, 12. ko audio - kilde, en , audio - kilde, komponent bruges til at spille en lyd. , når de spiller på stjerne.denne komponent vil læse den audio - magasin i sine muligheder og spille, når ringede fra et manuskript eller i starten, hvis , spille på vågen, afkrydsningsfelt er udvalgt, til at spille en lyd, når de spiller på en stjerne, er det nødvendigt først at fastgøre en, audio - kilde, komponent til det.vælg den stjerne fra , hierarki, eller , scene, synspunkt, tryk , tilføje komponent, knap i , inspektør, panel, og udvælge , audio - kilde , i , audio - , afsnit.,,,,,, som vi vil kun have den lyd, når de spiller rører stjerne, er vi nødt til at uncheck den , spille på vågen, mulighed.klik på den lille prik på lige under redskaberne ikon, at udvælge den lyd, vi ønsker at spille.,,,,, 13. tilsætning af balloner, balloner repræsenterer liv eller sundhed for vores vigtigste karakter.når en hånd kolliderer med den ko, det vil åbne en af balloner til at angive, at det blev ramt, og antallet af liv er faldet.,,,,,, trække ballon sprite fra de aktiver, til, består i, at panelet, og så tilbage til aktiver.dette vil skabe en, præfabrikerede, af ballonen. vil du se teksten bliver blå, som angiver, at den er nu en præfabrikerede.ved at skabe en præfabrikerede, vi kan genbruge ballon uden brug af supplerende midler,.,, udvælge nye præfabrikerede og presse , command + d, til at gentage det.brug , rotation, redskab til let skifte balloner som vist i ovenstående skærmbillede.,,, vi gruppe ko og balloner til at flytte dem lidt lettere.gør det, trækker en ballon fra, hierarki, panel, og det er på toppen af ko spil objekt i, hierarki, panel.koen spil objekt er fremhævet, at angive, at droppe ballon på det vil tilføje det som et barn af ko spil objekt. resultatet er, at de flytter ko spil protesterer også bevæger sig den holdning, som balloner.,,,,, 14. lægge hindringer, hænderne er fjender eller hindringer, der skal undgås hvis de spiller vil afslutte niveau ved at indsamle den stjerne.hænderne væk fra side til side, således at en snæver kløft, midt i ko igennem.,,,,,,, fordi de hænder er vildt genstande, som vi vil bruge flere gange, er vi for det første konvertere det til en præfabrikerede, som vi gjorde med balloner.efter ovennævnte skridt til at skabe de præfabrikerede og bruge redaktøren værktøjer til holdning hænderne som vist i ovenstående skærmbillede., er vi også nødt til at tilføje en accelerator på hver side af kollisioner. at tilføje den collider, tryk , tilføje komponent, knap i , inspektør, panel, og vælg , rubrik collider 2d, i , fysik 2d, afsnit. opdager man, at en grøn kasse findes rundt omkring i hånden når du vælger det, angiver, at de er en accelerator bundet til det.,,,,, vi spiller også en lyd, når en hånd kolliderer med den ko, sprænger en ballon.for at opnå dette, er det nødvendigt først at tilføje den lyd.vælg side fra , hierarki, eller , scene, synspunkt, tryk , tilføje komponent, knap i , inspektør panel, og udvælge , audio - kilde , fra , lyd, afsnit.,, oplysninger om audiovisuelle komponent vil dukke op i , inspektør panel.klik der under gear ikon for at vælge den korrekte lyd.,, 15. at tilføje den stjerne, målet med spillet er at indsamle de star ved udgangen af hvert niveau.spilleren kan flytte ko opad med blæser på anordningen er mikrofon.,,,,,, trække stjerne fra, aktiver, panel, og det er, scene. i, inspektør, er , transformere, afsnit, ændre de værdier, som er angivet i skærmbillede under position,,,,,, stjerne. det vil sætte stjernen på toppen af den plan.at afsløre, når koen indsamler stjernen, vi er nødt til at tilføje en accelerator for det, som vi har gjort et par gange.tilføje en æske collider 2d, stjernen.,, 16. tilsætning af indberetninger, indberetninger er også vildt objekter.de budskaber, informere den aktør, når det niveau, er blevet afsluttet, eller spillet er slut.,,,,,, trække indberetninger fra, aktiver, panel, hierarki, og så tilbage til, aktiver, panel til at omdanne dem til en præfabrikerede.senere i denne forelæsning, vil vi tilføje et manuskript til indberetninger og vise, hvordan de anvendes.glem ikke at slette dem fra, scene, når du har omsat dem til en præfabrikerede.,, 17. tilsætning af manuskripter, enhed omfatter en kode redaktør, en udgave af , mono - udvikling.det er en god redaktør, du kan bruge det, redaktør, du kan lide.- studie, f.eks. er et populært valg, hvis du bruger windows.,, du kan skabe en ny fil ved iværksættelse af din kode redaktør, redde fil i , aktiver, folder med dit projekt, og så tilføje det til en , gameobject, ligesom du gør med en komponent.du kan også skabe et nyt manuskript i , inspektør, ved udvælgelsen af , nyt manuskript, og fordobler du den til at åbne den.,,,,, 18. påvisning af mikrofonindgang, for at flytte vores vigtigste rolle, vi vil have adgang til den mikrofon.automatisk enhed indeholder grundlæggende støtte til opsamling af lyd, men det inkluderer ikke en ejendom eller en metode til at påvise den mikrofon er aktivitetsniveau, hvilket er, hvad vi er nødt til at flytte den ko., heldigvis, vi kan bruge en tredjepart manuskript, som vil give os adgang til en, lydstyrke, ejendom.det, lydstyrke, ejendom, vil gøre det muligt for os sammen med at omdanne. holdning, at koen, skabe en tom, gameobject, og navnet på det, microphoneinput,.brug det, tilføje komponent, knap til at lægge ovennævnte manuskript og en audio - kilde, komponent til den nye kamp imod.,,,,, ved at gøre det, vi gør det muligt for manuskriptet og anvendelsen vil begynde at fange den mikrofon er input.ved at justere, følsomhed, ejendom i, inspektør, vi kontrollere, hvor meget den ko er bevæget af input fra mikrofonen.den højeste værdi, hurtigere koen vil bevæge sig. , jeg har fundet det, 50, er en god værdi til at begynde med.,, 19. flytte hænderne, følgende manuskript definerer, hånd, klasse og kontrol med flytning af hænder.det hænder hele tiden bevæge sig fra venstre til højre og omvendt.lad os se, hvordan det fungerer, trin 1: egenskaber, den første ejendom, vi bruger i manuskriptet er movespeed,,, flyde, som definerer det antal enheder en hånd fat i hvert billede.det fastsætter, x, værdien af, transform.position, ejendom, flytter hånden vandret.,,, den anden ejendom, currentpos, også er en svæve, og butikker, den nuværende situation i hånden, før det bevæger sig.det vil hjælpe os med at beregne antallet af enheder i hånden kan bevæge sig, ved hjælp af unityengine; anvendelse af systemet. samlinger offentlige klasse: monobehaviour (private flyde movespeed = 0.02f; private flyde currentpos; offentlige bool forlod = falske, endelig det, venstre, ejendom, type, boolean, definerer, hvis side går til venstre.dette gør det nemt at ændre retningen af en hånd med det, venstre, variabel, sand eller falsk,.,, trin 2: start - metode, , start, metode er en metode, der er defineret i , monobehaviour, klasse, der hedder i initialization, før en anden metode er kaldt med undtagelse af , vågen, som vi ikke vil dække denne forelæsning., i begynder, metode, kan vi få det objekt, før en anden kode, er at flygte.i dette tilfælde, vi fastsætter, currentpos, ejendom til side i dag, før det har flyttet.,, ugyldige start() {currentpos = ændre holdning. x), trin 3: ændre holdning i, ajourføre, metode vi kontrollere, om det er til venstre eller højre, og det i den rigtige retning under hvert billede. til at gøre det, vi skriver en, hvis udtalelse indenfor, ajourføre, metode og nedsætte eller øge, x, position ved hjælp af, movespeed, variabel til at ændre holdning, ejendom,.,, ugyldige update() {/* gå hånd * /* træk til højre, hvis hånd er på venstre side * /er.venstre) (transform.position - = nye vector3 (movespeed, 0, 0)} andre (transform.position + = nye vector3 (movespeed, 0, 0)} /* ændring movespeed til at gå i den anden retning, skabte en bevægelse i loop * /hvis (ændre holdning. x < = currentpos - 0.7f) (movespeed * = - 1} hvis (ændre holdning. x > = currentpos + 0.7f) (movespeed * = - 1}}}, når bevæges hånden, 0,7, enheder, vi mangedobler den, movespeed, ejendom, - 1, på at få hånd i modsatte retning. resultatet er, at de hænder bevæger sig fra den ene side til den anden i en ubrudt løkke, hvilket gør det vanskeligere for koen gennem hænderne og nå stjernen.,, 20. cow manuskript, skaber et nyt manuskript og knytte det til ko spil objekt.dette manuskript vil håndtere deres aktioner og et par andre funktioner i forbindelse med spillet er mekanik, f.eks. med indberetninger. . lad os tage et kig på de egenskaber, der anvendes i manuskriptet, ved hjælp af unityengine; anvendelse af systemet. samlinger offentlige klasse ko: monobehaviour (private vector3 tyngdekraft = nye vector3 (0, 0.02f, 0), offentlige gameobject micvolume; private flyde movespeed; private byte balloner = 3; offentlige gameobject alertwin; offentlige gameobject alertlose;}, tyngdekraft: anvendes til at simulere lodrette kraft, trækker den ko i nedadgående retning, micvolume,: henvisning til den, microphoneinput, spil objekt, movespeed,: får, lydstyrke, værdi fra, microphoneinput, klasse, balloner, har antallet af balloner,denne værdi er den aktør er liv, alertwin,: henvisning til , alertwin, spil objekt, alertlose,: henvisning til , alertlose, spil objekt, konstaterer, at den offentlige variabler skal være oprettet i enheden er redaktør.de er alle henvisninger til prefabs. fastsættelse af værdien af en variabel i redaktør er let.redde manuskriptet og sikre, at der er ingen fejl.så gå tilbage til enhed og udvælge de , spil objekt, som manuskriptet er knyttet.du skulle se de variabler, der er anført nedenfor manuskriptet element som vist nedenfor.,,,,, drag og smid den krævede eller foretrukne aktiv for den variable eller klik den lille prik under gear ikon at vælge det.,,,,, sikre, at aktivet og den variable er af samme type, eller , vil du ikke kunne at droppe det eller se det, når du klikker på dot ikon.,, 21. flytter koen, trin 1: bevæger sig, at koen opad, og vi vil bruge de , fixedupdate, metode.hvorfor ikke den normale , ajourføre, metode? denne metode er en foruddefinerede , monobehaviour, metode, der løber , alle faste billedhastigheden, i stedet for hvert billede.det betyder, at det vil være korrekt, selv om den nuværende ramme, der er lidt lav. tilføje følgende kode blok til manuskriptet:,, ugyldige fixedupdate() {* flytte ko opad, baseret på mic - bind * /movespeed = micvolume. getcomponent < microphoneinput > (* 0.01f lydstyrke, transform.position). = nye vector3 (0, ændre holdning. y + movespeed, 0) /* simulere vores grovhed (dette ikke bliver stærkere, når høje) * /transform.position - = tyngdekraften.}, regner vi med den hastighed, ved at få de nuværende lydstyrke på mikrofonen.denne højrøstethed er fremstillet af, microphoneinput, klasse og derefter ganget med 0,01,.vi gør dette for at undgå, at koen fra det hurtigt.,, koen karakter er flyttet ved at øge, y, værdien af, transform.position, ejendom, med den hastighed, der oplagres opbevaret i movespeed,.,, trin 2: simulering af tyngdekraften, ud over at flytte den ko, som vi også anvendelse en negativ kraft til det, tyngdekraft. vi opnår dette ved at sænke den holdning, den ko ved, tyngdekraft, vektor vi skabte tidligere.det vil til stadighed mindske, y, placering af ko - uden at falde hurtigere, hvilket kun sker, hvis vi ville bruge misligholdelse tyngdekraft opførsel.,, 22. hænder sammenstød, trin 1: påvisning af sammenstød, i løbet af de næste skridt, vi fornemmer, hvis nogen af de hænder kolliderer med den ko. , ontriggerenter2d, metode løber, når to genstande kolliderer med fysik interaktion.i denne sag har vi kontrollere, om koen kolliderer med en genstand, der hedder, "hånd",,,,, som kan være i hænderne på stedet, og spille den lyd, der er knyttet til ko kamp imod kollisionen forekommer. vi også undersøge den ko er alpha ejendom.hvorfor vi gør det her, er forklaret i det næste skridt.,, ugyldige ontriggerenter2d (collider2d andre) {* hænder kollision * /hvis (other.name = = "hånd" & & transformere. getcomponent < spriterenderer > c). farve. = = 1) (andre. -. play();,, trin 2: at forhindre flere kollisioner, sammenstød, er afprøvet flere gange hvert billede, hvilket betyder, at tre sammenstød vil forekomme i meget kort tid, at alle de balloner.da vi ikke ønsker, at det skal ske, har vi brug for en måde at forhindre dette, er en hensigtsmæssig måde at gøre det på er at ændre alpha af ramte objekt.dette vil også give brugeren visuel feedback, som viser, at det er blevet ramt.den næste, der vil tage sig af det.,, /* forhindre fra flere kollision * /farve alpha = ny farve (1, 1, 1, 0.5f) transform. getcomponent < spriterenderer > c). farve = alpha, påberåbe sig ("enablecollision" 1), er det først og fremmest skabe en ny , farve, formål og tildele det farven af kampen imod og sætter, alpha, værdi, 0, 5, at gøre det delvist gennemskuelige.vi så adgang kampen imod, spriterenderer,,, der tillader os at ændre dens farve.,, sidste linje i denne blok af kode venter et øjeblik, og så siger de, enablecollision, funktion.det funktion nulstiller farve værdier af ko, der gør det i stand til at detektere en kollision igen.vi vil gennemføre denne funktion senere i denne forelæsning.,, 23. fjernelse af balloner, når koen er ramt af en hånd, en ballon skal fjernes.vi kalder, ødelægge, metode på en ballon spil objekt.vi bruger den, finder, funktion, fordi vi ikke har en henvisning til hver af de balloner. denne funktion søgninger, spillet er aktiver og vender tilbage til kampen imod det, vi leder efter, i dette tilfælde en ballon, ballon, /* fjerne * /ødelægge (gameobject finde ("ballon."); balloner -;,, men vent, der er tre balloner i stedet?det er korrekt.men det , finder, funktion vender tilbage til den første kamp, det kan finde.med andre ord, den kommer tilbage den første ballon kamp imod den finder, har vi også dekrement, balloner, mod at hjælpe os, når koen har mistet alle sine liv. og 24. spillet, spillet er slut, når alle de balloner er blevet skudt.for at teste det tjekker vi, hvis, balloner, er lig med 0, og vise en indberetning, hvis det er sandt.vi er også fastsat, tyngdekraft, er y, ejendom, 0, og pause spillet ved at fastsætte frister, til 0,.,,, tidsplan, ejendom, kontrol, hvordan tiden går i kamp miljø.den kan bruges til at gøre kampen hurtigere eller langsommere på grundlag af dens værdi.standardtidsintervallet, omfang, 1, 0, øge dens værdi accelererer billedhastigheden funktioner og sænke det sinker dem.om fastsættelse af det til 0, pauser spillet, forhindre nye sammenstød.,, /* game over * /hvis (balloner = = 0) (gameobject alarm = instantiate (alertlose, nye vector3 (0, 0, 0), transform. skift), som gameobject; tyngdekraft. y = 0, time.timescale = 0), 25. plan fuldstændig, når de bliver på den anden side af det niveau, vi er nødt til at fjerne den stjerne, og har en alarm, der viser, at niveauet er afsluttet.,,,,, hvis udtalelse kontrol, hvis kollisionen er faktisk med star kampen imod og spiller den lyd, der er knyttet til ko, hvis navn er korrekte.vi så fjern stjerne fra stedet før oprettelsen af indberetningen.vi er også fastsat, tyngdekraft, er y, ejendom, 0, som , vi har i det foregående trin.,, /* stjerne kollision * /hvis (other.name = = "star") (lyd. play(). ødelæg (andre. gameobject); gameobject alarm = instantiate (alertwin, nye vector3 (0, 0, 0), transform. skift), som gameobject; tyngdekraft. y = 0), 26. for kollisioner,,, enablecollision, metode nulstiller alpha værdi af ko spil genstand, efter at det er blevet ramt af en hånd.dette vil gøre det muligt at påvise et hit ko kamp imod.bemærker, at den farve, objekt er en alpha,.,.,, ugyldige enablecollision() (farve alpha = ny farve (1, 1, 1, 1) transform. getcomponent < spriterenderer > c). farve = alpha.}, af 27. genoptage kampen, den , genlade, metode bruger , anvendelse, klasse for at lade det nuværende niveau.skabe et nyt manuskript, der hedder genoptage, , tilføje følgende kode blokere den, og lægger det både af indberetningen prefabs skabte vi tidligere.,,, ved hjælp af unityengine; anvendelse af systemet. samlinger offentlige klasse igen: monobehaviour {tomrum update() (hvis (input. getbutton ("fire1") (reload();) ugyldig reload() {anvendelse. loadlevel (ansøgning. loadedlevel)}}, er vi for det første prøve, hvis brugeren haner på skærmen ved hjælp af input, klasse og ringe, genlade, metode, hvis det er sandt.gennemførelsen af, genlade, metode er kort og enkel. alt vi gør, er at lade den nuværende niveau, reseting hver genstand og variabel til dets oprindelige tilstand.,, 28. testning, det er tid til at teste de spil.tryk , command-p, spillet i enhed.hvis alt fungerer som forventet, er du klar til det sidste skridt,.,, 29. spiller indstillinger, når du er tilfreds med dit spil, det er tid til at vælge , bygge kulisser, fra , fil menuen og tryk , spiller indstillinger, knap.det skulle bringe den , spiller indstillinger, i , inspektør, panel, hvor man kan opstille kriterier for deres ansøgning.,,,,, disse miljøer er specifik anvendelse og omfatte skaberen eller selskab anvendelse beslutning billedformat osv. disse områder afhænger af det udstyr, du er ude og butikker eller markeder i vil offentliggøre dit spil.,, 30. bygge - og spille,,,,,, når projektet er korrekt konfigureret, det er tid til at vende tilbage til , bygge kulisser, og tryk , bygge, knap.det er alt det, der skal til for at skabe dit spil for afprøvning og /eller distribution.,, konklusion i denne forelæsning, vi har lært at gennemføre mikrofon kontrol, fysik interaktion, sprite ark, og andre aspekter af spil udvikling ved hjælp af enhed.jeg opfordrer dig til at eksperimentere med resultatet og vælge, kampen for at gøre det alene.jeg håber, du kan lide det forelæsning, og fandt det nyttigt.
skabe en ballon - kamp i enhed ved hjælp af mikrofonen
Next Page:en introduktion til androide overgange