Innehållsförteckning:

Generiska rum i garn med sockerrör: 11 steg
Generiska rum i garn med sockerrör: 11 steg

Video: Generiska rum i garn med sockerrör: 11 steg

Video: Generiska rum i garn med sockerrör: 11 steg
Video: SCP-261 Pan-dimensionell Vending och experiment Log 261 Ad De + Komplett + 2024, November
Anonim
Generiska rum i garn med sockerrör
Generiska rum i garn med sockerrör

Hej hej och välkommen till min handledning om att bygga Wumpus Hunt i garn med Sugarcube!

Twine är ett mycket enkelt verktyg, utformat för att skapa text äventyrsspel! Min favorit lilla kusin har valt att göra ett spel med Twine för sitt seniorprojekt, och jag får hjälpa till så jag skapar denna serie självstudier!

Denna serie är mindre avsedd som ett projekt i sig, och mer som en referens för speldesign med garn. Jag ska visa upp några av Twines funktioner och hur du kan använda dem som en del av ditt spel.

Om du vill följa med mig när jag bygger Hunt the Wumpus, uppmuntrar jag dig att ändra saker under tiden. Prova att lägga till funktioner eller använda saker på nya sätt. På så sätt kan du skapa ditt eget spel, istället för att bara följa mitt.

Nu har vi en Wumpus att jaga!

Steg 1: För Brevityns skull …

För skenhetens skull …
För skenhetens skull …

Denna handledning kommer att anta att du är bekant med några grunder. Normalt gillar jag att göra mina handledning så lättillgängliga som möjligt, men den här gången måste jag ta mig till köttet och potatisen för min förtjusande kusin.

Jag antar att du känner till Twine; att du vet hur du laddar ner det (eller använder onlineversionen), och att du vet hur man gör nya avsnitt och länkar dem ihop. Jag antar också att du är bekant med några grundläggande programmeringskoncept, nämligen variabler och funktioner, och hur de används i Sugarcube.

Jag måste anta att du är bekant med spelet Hunt the Wumpus. Det är ett svårt koncept att beskriva med ord, och att förklara med bilder skulle ta evigheter. Jag försökte hitta en video eller något som förklarade det, men jag kunde inte hitta någon som bara var berättelselös spel. Jag antar att det är en av de sakerna som bara går vidare generellt, och alla antar bara att du vet om det. Jag antar att jag inte hjälper till med det.

Steg 2: Idén

Idén
Idén

Tanken bakom detta projekt är att vi kan använda Twines passager som enskilda rum. Spelaren kan korsa dessa rum genom länkarna, och koden ändrar rummets text beroende på om Wumpus är där eller inte.

Det här konceptet blev mer utmanande än jag förväntade mig, men på det hela taget tror jag att det passade mestadels inom Twines styrhus.

Steg 3: Skapa några rum

Skapa några rum
Skapa några rum
Skapa några rum
Skapa några rum
Skapa några rum
Skapa några rum
Skapa några rum
Skapa några rum

Som du kan se ovan började jag med att skapa ett 3x3 rutnät med rum. Jag har också en introduktionspassage där spelaren kommer att börja, och som länkar till ett rum på rutnätet. Koden för dessa är mycket grundläggande, bara lite text och länkar. Jag gjorde lite formatering för att ordna länkarna i varje rum (som du kan se på den tredje bilden), men jag höll det minimalt.

Nyckeln till detta steg är minimalism. Du kommer att vilja omarbeta de flesta av dessa saker regelbundet, så du vill inte behöva göra om en hel massa jobb. Håll dig till mindre än 10 rum totalt, håll rumsbeskrivningarna korta, gör inte sakerna vackra ännu. De måste bara vara funktionella.

När du väl har fått koden att fungera kan den vara snygg.

Steg 4: Lägg till en Wumpus

Lägg till en Wumpus
Lägg till en Wumpus

För att lägga till vår Wumpus måste vi skapa en StoryInit -passage.

Denna passage är unik för SugarCube och körs innan spelaren ser startpassagen. Det används för att ställa in variabler och objekt som måste skapas innan spelet börjar. Det är mycket viktigt att avsnittet heter "StoryInit", och det är skiftlägeskänsligt.

Vi deklarerar vår Wumpus -variabel som en sträng och tilldelar den ett slumpmässigt rums titel. Vi kan använda funktionen antingen () för att tilldela den en slumpmässig sträng från en lista med strängar. På det sättet kommer Wumpus alltid att börja i ett slumpmässigt rum.

Steg 5: Sök efter en Wumpus

Sök efter en Wumpus
Sök efter en Wumpus

Till vart och ett av rummet lägger vi till ett "" uttalande som kontrollerar om Wumpus är i det aktuella rummet. Om det är det, kommer det att skriva ut en kort sträng. Om det inte är det så dyker ingenting upp.

Eftersom vi bygger detta kommer vi också att lägga till lite felsökningsinformation. Vi skulle vilja veta i förväg var vår Wumpus är och att den fungerar som den ska.

Du måste kopiera och klistra in den här koden individuellt i varje rum för tillfället. Det är därför jag sa åt dig att hålla dig till bara några få rum.

Steg 6: Testa

Testa
Testa
Testa
Testa

Vi testar vår kod genom att spela den. Visst kan vi se var Wumpus ligger högst upp på skärmen. Om vi inte är i det rummet är "A Wumpus here!" texten visas inte.

Genom att navigera till rätt rum kan vi få texten att visas. Så här tilldelar vi vår Wumpus ett slumpmässigt rum för varje spel!

Steg 7: Lägga till generisk rumskod

Lägger till generisk rumskod
Lägger till generisk rumskod
Lägger till generisk rumskod
Lägger till generisk rumskod

Allt det som kopierar och klistrar in för att få varje rum att leta efter Wumpus är tråkigt. När vi utvecklar det här spelet kommer vi att vilja ändra denna kod ganska mycket. Vi behöver ett bättre sätt att göra det. Låt oss skapa en generisk rumskod.

Gör en passage och rubricera den till något speciellt. Jag kallar mitt "rum", med små bokstäver. Du kanske vill använda specialtecken eller alla kepsar för att göra ditt unikt så att det inte liknar något av dina riktiga rumsnamn.

Vi klipper och klistrar in vårt "" uttalande i denna generiska rumskod. Använd sedan ett "" uttalande i vart och ett av dina riktiga rum. Detta kommer bokstavligen att kopiera och klistra in innehållet i vår "rum" -passage i den delen av varje rum. På så sätt kan vi låta maskinen hantera de tråkiga bitarna, medan vi fokuserar på kod!

Du kan läsa mer om "" och andra uttalanden på dokumentationssidan för Sugarcube 2.

Steg 8: Testa

Testa
Testa
Testa
Testa

Att testa detta ger naturligtvis samma resultat som tidigare, men det är viktigt att testa ofta. Tillfredsställande också.

Det pekar dock på en olycklig bieffekt av all vår kodning som vi nu kan hantera mer korrekt. Du kanske märker att när vi lägger till mer kod till varje passage får vi mer och mer tomt utrymme i vårt spel. Vi tar hand om dem nästa.

Steg 9: Varför finns det tomma linjer?

Varför finns det tomma linjer?
Varför finns det tomma linjer?
Varför finns det tomma linjer?
Varför finns det tomma linjer?

Du kan se ovan hur jag har lagt till snedstreck i ändarna av vissa kodrader. Var och när jag använder dem är mycket avsiktligt, och för att förstå att du måste förstå varför vi får konstiga linbrott i första hand.

Det är kodens natur i Twine att mingla med vanlig text. Vinkelparenteserna (dessa saker:) säger till Twine att det som ingår är kod och inte text. Låt mig illustrera problemet med detta. Låt oss säga att du har följande kod:

<> Normal text visas i spelet … <> Mer speltext …

Många textprocessorer har ett alternativ som låter dig se tecken i blanksteg. saker som mellanslag, flikar och radbrytningar. Twine gör inte det, men om det gjorde det skulle det se ut ungefär så här:

Normal˙text˙visas˙i˙spel … ¶ ¶ Mer˙spel˙text …

Ser du de styckena? (¶) De finns inte inuti vinkelparenteserna. Det betyder att Twine tycker att de är normal text och lägger dem i ditt spel. Det är därför, när du spelar spelet, ser det ut så här:

Normal text visas i spelet …

Mer speltext …

För att bli av med dem kan vi använda en backslash -karaktär för att berätta för Twine att vi inte vill ha den där linjebreaken där. I din kod kommer det att se ut ungefär så här:

Normal˙text˙visas˙i˙spel … ¶ / ¶ Mer˙spel˙text …

Detta kommer att visas som du förväntar dig i ditt spel:

Normal text visas i spelet …

Mer speltext …

Tänk på att endast radbrytningar utanför vinkelparenteser behöver detta. Om vi till exempel hade följande kod:

Vi skulle bara behöva det ena snedstrecket, eftersom det första linjeskyddet (¶) är inuti vinkelparenteserna ().

För det andra, backslashes () skiljer sig från snedstreck (/), och du måste vara försiktig med vilken du använder var, eftersom de gör olika saker.

Steg 10: Testa

Testa
Testa

Ditt test bör avslöja att du har eliminerat det felaktiga tomma utrymmet! utmärkt!

Steg 11: Det är allt för nu

Det var allt tills vidare
Det var allt tills vidare

Det är hela tiden jag har för tillfället. Hittills är allt ganska grundläggande Twine -grejer. Generisk rumskod är ett användbart knep för att minska den kopia och klistra du måste göra, och dessa backslash är absolut nödvändiga för att hålla dina passager rena och din kod läsbar.

Saker kommer att ta fart snabbt härifrån!

Glad jakt!

Rekommenderad: