I forrige tutorial lærte vi at lave et kapitel med to forskellige slutninger ud fra det valg, som læseren tog i kapitel 1. I denne tutorial vil vi give læseren et valg, der ændrer små elementer i teksten igennem hele kapitlet.
Mit udgangspunkt ser sådan ud:
Og kan hentes her.
For at lave et valg, der kan ændre små elementer i teksten, skal vi lægge ud med at give læseren valget. Det gør vi ved at åbne passagen ’Kapitel 3’ og taste følgende ind:
(set: $tøj to 0)Jeg kan mærke, hvordan hårene rejser sig på mine arme.
Med stive bevægelser gnider jeg huden for at få gåsehuden til at lægge sig. Underlaget, jeg ligger på, er hårdt og koldt. Da jeg mærker nærmere efter, kommer jeg frem til, at det er metal.
Hvert åndedrag fylder min næse med en skarp, sød lugt.
En ubehagelig, sød lugt.
”Side 9”
(link: “Jeg har tøj på”)[(set: $tøj to 2)]
(link: “Jeg er nøgen”)[(set: $tøj to 1)]
Jeg kan så røbe, at i originalteksten er hovedpersonen nøgen. Vi har lavet en variabel, der hedder ’$tøj’ og valgt, at 1 betyder nøgen og 2 betyder påklædt.
I begyndelsen af afsnittet sætter vi $tøj til 0 for at vise, at der endnu ikke er truffet et valg. Det ser sådan ud:
Fordi læseren kun skal kunne vælge én ting, hvorefter den anden valgmulighed forsvinder, laver vi en if-sætning og kobler den til et ’choice’.
(if: $tøj is 0)[|choice>[
]
]
Så langt så godt. Og her må du holde tungen lige i munden. Nu sætter vi vores to links ind under ‘choice’. Så det ser sådan ud:
(if: $tøj is 0)[|choice>[
(link: “Jeg har tøj på”)[(set: $tøj to 2)]
(link: “Jeg er nøgen”)[(set: $tøj to 1)]
]
]
I Twine ser det sådan ud:
Og til sidst tilføjer vi linket til passagen ’Side 10’, så læseren kan læse videre, efter de har truffet valget. Linket ser sådan ud:
[[Side 10]]
Det skal kombineres med denne kode:
(replace: ?choice)[]
Og kommer til at se sådan ud:
(replace: ?choice)[[[Side 10]]]
Vi placerer replace-choice-koden til hvert valg, således:
(if: $tøj is 0)[|choice>[
(link: “Jeg har tøj på”)[(set: $tøj to 2)(replace: ?choice)[[[Side 10]]]]
(link: “Jeg er nøgen”)[(set: $tøj to 1)(replace: ?choice)[[[Side 10]]]]
]
]
Passagen ser nu sådan ud:
For at undgå blanke linjer fjerner vi nogle linjeskift i koden. Dog får de to links lov til at stå på hver sin linje.
Denne kode kan du sådan set bare kopiere og sætte ind. Derefter kan du rette variablen, hvis du ikke selv bruger $tøj:
(if: $tøj is 0)[|choice>[(link: “Jeg har tøj på”)[(set: $tøj to 2)(replace: ?choice)[[Side 10]]]]
(link: “Jeg er nøgen”)[(set: $tøj to 1)(replace: ?choice)[[Side 10]]]]]]
Den ser sådan ud:
For læseren ser det sådan ud. Den røde pil markerer, hvordan valgmulighederne lyser op, når musen bevæger sig over dem:
Efter man har trykket, skifter det til dette:
Den røde pil til højre markerer variablerne, som vi har tilføjet i gennem de sidste tutorials.
$mistro
$kapitel2
$kapitel 3
$tøj
På den måde kan du se, hvilke variabler, du har lavet, imens du tester din historie.
Så langt så godt!
Nu skal vi lave teksten til side 10, som kommer til at ændre sig ud fra læserens valg. Åbn passagen ’Side 10’ og sætter følgende tekst ind:
Jeg synker og skubber mig op på albuerne, så jeg kan se ned ad min blege, nøgne krop. Min overkrop er indsunken, og huden fyldt med røde, lilla og hvide striber. De blålilla blodårer står frem under min hud i det syntetiske lys fra lysstofrørene i loftet. Jeg ligger ganske rigtigt på et metal-bord.
Det er surrealistisk at føre en finger over mit mave-skind. Jeg kan mærke mig selv. Jeg kan mærke, at jeg rører mig selv.
Jeg er i live.
Jeg burde ikke være i live.
”Side 10”
[[Side 11]]
Det er sådan ud:
Dette er teksten, som vi skal kode vores variabel ind i. Teksten, der skal ændres på indrammes med [ ]. Herefter skal vi have en if-sætning foran den indrammede tekst. Vi bruger if-sætningen:
(if: $tøj is 1)
Og sætter den ind sådan her:
Jeg synker og skubber mig op på albuerne, så jeg kan se ned ad (if: $tøj is 1)[min blege, nøgne krop. Min overkrop er indsunken, og huden fyldt med røde, lilla og hvide striber. De blålilla blodårer står frem under min hud] i det syntetiske lys fra lysstofrørene i loftet. Jeg ligger ganske rigtigt på et metal-bord.
Det er surrealistisk at føre en finger over (if: $tøj is 1)[mit mave-skind. Jeg kan mærke mig selv. Jeg kan mærke, at jeg rører mig selv.]
Jeg er i live.
Jeg burde ikke være i live.
I Twine ser det sådan ud:
Vi har sørget for, at sætningerne med nøgenhed forsvinder, hvis læseren vælger at have tøj på. Sætningerne iført tøj skal skrives, da de ikke eksisterede til at starte med. De skrives inden i et nyt sæt [ ], således:
Jeg synker og skubber mig op på albuerne, så jeg kan se ned ad (if: $tøj is 1)[min blege, nøgne krop. Min overkrop er indsunken, og huden fyldt med røde, lilla og hvide striber. De blålilla blodårer står frem under min hud][min spinkle krop, dækket af en stor skjorte, hvor mine tynde ben stikker ud. Stoffet er gulligt] i det syntetiske lys fra lysstofrørene i loftet. Jeg ligger ganske rigtigt på et metal-bord.
Det er surrealistisk at føre en finger over (if: $tøj is 1)[mit mave-skind. Jeg kan mærke mig selv. Jeg kan mærke, at jeg rører mig selv.][den krøllede skjorte. Jeg kan mærke det ru stof. Jeg kan mærke, presset fra mine fingre gennem det.]
Jeg er i live.
Jeg burde ikke være i live.
I Twine ser det sådan ud:
Vi mangler dog stadig en sidste bid af vores if-sætning, før koden virker. Man kan skrive:
(if: $tøj is 2)
Eller man kan skrive:
(else:)
Else betyder, at hvis $tøj ikke er 1, vil den i stedet vise den markerede tekst i [ ]. Lad os prøve at sætte ’else’ ind.
Jeg synker og skubber mig op på albuerne, så jeg kan se ned ad (if: $tøj is 1)[min blege, nøgne krop. Min overkrop er indsunken, og huden fyldt med røde, lilla og hvide striber. De blålilla blodårer står frem under min hud](else:)[min spinkle krop, dækket af en stor skjorte, hvor mine tynde ben stikker ud. Stoffet er gulligt] i det syntetiske lys fra lysstofrørene i loftet. Jeg ligger ganske rigtigt på et metal-bord.
Det er surrealistisk at føre en finger over (if: $tøj is 1)[mit mave-skind. Jeg kan mærke mig selv. Jeg kan mærke, at jeg rører mig selv.](else:)[den krøllede skjorte. Jeg kan mærke det ru stof. Jeg kan mærke, presset fra mine fingre gennem det.]
Jeg er i live.
Jeg burde ikke være i live.
Og i Twine ser det sådan ud:
Lad os køre en test og se den tekst, som læseren ser 😊 Vi trykker på ’test’ ved siden af insektlogoet nederst til højre.
Når vi kommer til valget i kapitel 3 og klikker over på side 10, ser det sådan ud:
Som tidligere nævnt markerer den røde pil de aktive variabler. Som vi kan se, står $tøj på 2, og derfor har jeg-fortælleren tøj på.
Selve projektet ser sådan ud:
Jeg havde en del problemer med overgangen til passagen ’Side 10’, som man kan se markeret med en rød cirkel. Kodningen besluttede sig for, at den ville lave sin egen passage ’[Side 10’ uden tekst, men stadig hoppe over til den rigtige ’Side 10’ som den skulle. Slettede jeg ’[Side 10’, stoppede linket med at virke.
Kloge hoveder er velkomne til at byde ind :p
Mærkelig ekstra passage eller ej, så virker det for læseren. Derfor har jeg lagt filen op, så man kan hente den her.
I den kommende tutorial ser vi på tilføjelsen af en save/load funktion. Twine har også mulighed for at tilføje billeder og audio samt enkelte tekstanimationer 🙂
– Pernille