Gem, Indlæs og Høj Score | hyperPad Documentation

Loading...

Logo

Ofte vil du gerne lave et spil, hvor det husker visse detaljer fra sidste gang, det blev spillet.

Hvad du ønsker at gemme afhænger i høj grad af det spil eller den app, du laver. Uanset om du vil gemme en score, positionen eller den samlede fremgang, skal du planlægge, hvordan og hvad du vil gemme.

I denne tutorial vil vi dække, hvordan du gemmer en spillers score, og opretter et simpelt high score- eller "Bedste tidligere" score-system.

I denne tutorial antager vi, at du har lavet et simpelt spil, hvor spilleren samler mønter (Del 5 af Oprettelse af et platformspil), og antallet af mønter vises med en tekstfelt på skærmen.

Gem

Når det kommer til at gemme, er der to vigtige spørgsmål, du bør stille dig selv. Hvad vil du gemme, og hvornår skal du gemme? I hyperPad kan Gem-adfærden kun gemme en enkelt værdi ad gangen. Så du skal virkelig tænke over, hvad du gemmer.

I denne tutorial vil vi gemme scoren (antal indsamlede mønter), der vises ved hjælp af en tekstfelt på skærmen.

Nu hvor vi ved, at vi gemmer scoren fra tekstfeltet, er det næste, vi skal finde ud af, hvornår vi skal gemme.

Der er mange muligheder her, og de afhænger af dit gameplay eller din overordnede design. Du kan have det til at gemme hver gang spilleren samler en mønt, gemme når spilleren taber, gemme når spilleren gennemfører niveauet, gemme når spilleren trykker på en knap, eller hvad end du mener er nødvendigt for din situation.

I denne tutorial vil vi opsætte en knap, der gemmer scoren, når spilleren trykker på gem-knappen. Denne samme adfærdslogik kan anvendes, hvis du vil gemme, når spilleren taber eller afslutter niveauet. Du skal bare udløse disse adfærd, når du vinder eller taber.

Vælg dit Gem-knapobjekt, og åbn adfærd.

Fra Interaktion-kategorien i adfærdeditoren tilføj en "Stoppet Berøring" adfærd.

Nu fra UI-kategorien tilføj en "Hent Label" adfærd, og forbind den til "Stoppet Berøring" adfærden fra det forrige trin.

Tryk på "Hent Label" adfærden for at se adfærdens egenskaber. Fra adfærdens egenskaber skal du trykke på området, der repræsenterer det aktuelle objekt, og derefter vælge tekstfeltet i din scene, der repræsenterer din score.

Næste fra Tilpasset-kategorien skal du tilføje en "Gem til Fil" adfærd og forbinde den til "Stoppet Berøring".

Vælg "Gem til Fil" adfærden, du lige har tilføjet, for at se adfærdens egenskaber. Bemærk, at "Nøgletype" er indstillet til eksisterende. Eksisterende nøgler er foruddefinerede ting, du vil gemme.

Først skal du tilføje titlen eller beskrivelsen af noget, du vil gemme. Dette kaldes en "Nøgle". Tryk på knappen "Vælg eller Opret Nøgle" for at hente listen over nøgler.

Indtast en beskrivende titel øverst, og tryk derefter på + knappen for at tilføje din første nøgle. Da vi ønsker at gemme scoren, indtast "Score" som nøglen.

Næste skal du faktisk gemme scoren fra tekstfeltet. For at gøre dette skal du outputte værdien fra hjørnet af "Hent Label" adfærd ind i inputfeltet i "Gem til Fil" egenskaberne.

Det var alt! På dette tidspunkt skulle dit spil gemme din score, lige når du trykker på gem-knappen. Men du har ikke rent faktisk gjort noget med den gemte værdi. Det næste, du skal gøre, er at indlæse scoren og faktisk bruge den i din scene.

Indlæsning

Med din score gemt, skal du nu indlæse den og bruge den i din scene. Når det kommer til indlæsning, er der ét vigtigt spørgsmål, du skal besvare. Hvornår vil du indlæse?

Ligesom ved gemning afhænger svaret i høj grad af dit projekt. Du kan indlæse, så snart din scene starter, når spilleren trykker på en knap, eller når en anden begivenhed udløses. Det afhænger virkelig af, hvad du prøver at opnå.

I denne tutorial indlæser vi lige, når scenen starter og viser den tidligere gemte score.

For at starte skal du tilføje en tekstfelt i din scene. Vi vil bruge dette tekstfelt til at vise din gemte score.

Næste skal vi tilføje den faktiske indlæsningslogik. For denne tutorial vil vi tilføje logikken til Gem-knappen fra de tidligere trin. Men afhængigt af dit spil, skal du muligvis placere din logik et andet sted. Vælg gem-knappen og åbn adfærdeditoren fra objektets egenskaber.

Fra Tilpasset-kategorien tilføj "Indlæs fra Fil" adfærden, og forbind den ikke til noget. Da den ikke er forbundet til nogen anden adfærd, vil indlæsningsadfærden udføres, lige når scenen starter (når knappen findes i scenen). Hvis du ønskede at indlæse baseret på en bestemt hændelse eller andet udløser, ville du forbinde den til andre adfærd.

Vælg nu "Indlæs fra Fil" adfærden for at se adfærdens egenskaber. Igen, sørg for, at "Eksisterende" er valgt som nøgletype.

Næste tryk på "Vælg Nøgle" knappen for at åbne listen over gemte nøgler. Fra listen vælg "Score" nøglen, du tilføjede tidligere.

På dette tidspunkt har du teknisk set indlæst scoren. Men du gør ikke noget med den endnu. Lad os sætte den indlæste værdi i brug.

Fra UI-kategorien tilføj en "Indstil Label" adfærd, og forbind den til indlæsningsadfærden, du tilføjede tidligere.

Næste vælg "Indstil Label" adfærden for at se dens egenskaber, og husk at vælge det nye tekstfelt, du lige har tilføjet, der repræsenterer den indlæste score. Når du har valgt det rigtige tekstfelt, skal du trække outputværdien fra hjørnet af "Indlæs fra Fil" adfærden ind i inputfeltet for Indstil Label adfærden.

Det var alt, hvad du skal gøre! Din fremgang vil gemmes og blive indlæst i et tekstfelt næste gang du spiller.

Høj Score

Én ting, du måske har bemærket, er, at din score gemmes hver gang du trykker på knappen og overskriver din tidligere score. Nogle gange er dette fint, men normalt vil du kun gemme, når spilleren når en score, der er højere end deres tidligere.

For at implementere dette "Høj Score" system behøver vi kun at ændre vores gemme-logik lidt.

Start med at gå tilbage til, hvor gemme-adfærd er placeret (gem-knappen).

Først skal du afbryde forbindelsen mellem "Gem til Fil" adfærden og din "Stoppet Berøring" adfærd. Tryk på linjen, der forbinder de to adfærd for at afbryde dem.

Næste fra Logik-kategorien skal du tilføje en IF-adfærd. IF-adfærden vil tjekke, hvornår en bestemt betingelse er opfyldt, før den udfører. I dette tilfælde vil vi kun gemme, HVIS scoren er højere end den tidligere (indlæste) score.

Forbind IF-adfærden til "Stop Touching" adfærden.

Næste skal du trykke på IF-adfærden for at åbne adfærdens egenskaber og opsætte betingelsen.

Træk outputværdien fra "Hent Label" ind i det første inputfelt i IF-adfærden.

Træk derefter outputværdien fra "Indlæs fra Fil" adfærden ind i det andet inputfelt i IF-adfærden.

Nu skal du ændre betingelsen. Tryk på knappen "Er Lige Med" og vælg Gratter end eller Lige med () optionen.

Til sidst skal du forbinde din gamle gemme-adfærd til IF. Nu vil din IF-adfærd kun udføre den forbundne gemme, HVIS værdien fra tekstfeltet er højere end (eller lig med) den indlæste værdi.

Det er alt, hvad du skal gøre. Du skulle nu have et fungerende gemme- og indlæsningssystem, der gemmer spillerens score, kun hvis de slår deres tidligere forsøg.

Andet Gem

Denne tutorial dækkede gemme af en score. Men nogle gange vil du gerne gemme andre ting, som spillerens position, eller det aktuelt niveau osv.

De koncepter, du lærte i denne tutorial, gælder stadig. Du skal bare ændre, hvornår du gemmer, og hvad du gemmer.

Tag f.eks. gemme spillerens position. En objekts position gives i 2 tal. X og Y. For dette ville du simpelthen bruge 2 gemmeadfærd. Én til at gemme X-positionen og den anden til at gemme Y-positionen. Så når det kommer til indlæsning, ville du bruge 2 indlæsningsadfærd. I stedet for at indstille en tekstfelt ville du simpelthen flytte spillerobjektet til de indlæste X- og Y-positioner.

Ved at lave en plan for, hvad du prøver at gemme, og hvornår du skal gemme, kan du skabe et system, der fungerer for næsten enhver situation.