Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
ressource:logiciel:twine:start [2024/12/17 11:08] emoc |
ressource:logiciel:twine:start [2025/01/29 23:08] (Version actuelle) emoc [Quizz] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag>jeu-video code fiction-interactive narration game-jam em}} | ||
+ | |||
====== Twine ====== | ====== Twine ====== | ||
Ligne 13: | Ligne 15: | ||
* tweego : https://github.com/tmedwards/tweego | * tweego : https://github.com/tmedwards/tweego | ||
- | ===== TLDR ===== | + | ===== TL;DR ===== |
- | Pour découvrir Twine, les tutos vidéos de Tourmaline Studio sont parfaits! : https://www.youtube.com/watch?v=dl_WlMMTt1s&list=PLFGDV4C3TmMGzuRN9In6MQducHbxqwTWI \\ | + | Pour découvrir Twine, les tutos vidéos francophones de Tourmaline Studio sont parfaits! : https://www.youtube.com/watch?v=dl_WlMMTt1s&list=PLFGDV4C3TmMGzuRN9In6MQducHbxqwTWI \\ |
===== Formats d’histoires : Harlowe et les autres ===== | ===== Formats d’histoires : Harlowe et les autres ===== | ||
Ligne 179: | Ligne 181: | ||
* Introduction to Twine (Harlowe) : https://docs.wixstatic.com/ugd/d1fd96_4cea140f718a483689aa26a67981671c.pdf | * Introduction to Twine (Harlowe) : https://docs.wixstatic.com/ugd/d1fd96_4cea140f718a483689aa26a67981671c.pdf | ||
+ | **Chat-like discussions** | ||
+ | * trialogue (voir plus haut) est très bien pour simuler des conversations messagerie instantanée, mais basé sur le format d'histoire snowman | ||
+ | * chat like discussion in harlowe : http://twinery.org/forum/discussion/7994/chat-like-conversations-for-harlowe / css voir https://codepen.io/2ne/pen/AXMLpj | ||
+ | * sur le même sujet une vidéo un peu datée… (2017) : https://www.youtube.com/watch?v=kjKRegikbYQ | ||
- | + | **Récits exemple** | |
- | ==== Récits exemple ==== | + | |
* un exemple en Harlowe : https://www.bac-a-sable.eu/agneau/ | * un exemple en Harlowe : https://www.bac-a-sable.eu/agneau/ | ||
- | ==== Chat-like discussions ==== | ||
- | Surement à tester en premier : trialogue | ||
- | |||
- | Discussions sur ce sujet | ||
- | * chat like discussion in harlowe : http://twinery.org/forum/discussion/7994/chat-like-conversations-for-harlowe / css voir https://codepen.io/2ne/pen/AXMLpj | ||
- | * sur le même sujet une vidéo un peu datée… (2017) : https://www.youtube.com/watch?v=kjKRegikbYQ | ||
===== Tutoriels ===== | ===== Tutoriels ===== | ||
Ligne 197: | Ligne 195: | ||
**une série de 10 tutos vidéos par Tourmaline Studio, très bien faits pour découvrir Twine 2** (2021) : https://www.youtube.com/watch?v=dl_WlMMTt1s&list=PLFGDV4C3TmMGzuRN9In6MQducHbxqwTWI \\ | **une série de 10 tutos vidéos par Tourmaline Studio, très bien faits pour découvrir Twine 2** (2021) : https://www.youtube.com/watch?v=dl_WlMMTt1s&list=PLFGDV4C3TmMGzuRN9In6MQducHbxqwTWI \\ | ||
(en) vidéo d’intro très bien : https://www.youtube.com/watch?v=lhn39SPETMM | (en) vidéo d’intro très bien : https://www.youtube.com/watch?v=lhn39SPETMM | ||
+ | |||
+ | ===== Aides thématiques ===== | ||
+ | |||
+ | ==== Quizz ==== | ||
+ | |||
+ | |||
+ | |||
+ | (avec Sugarcube 2.37.3) Pour créer un **quizz type magazine : les réponses dessinent un profil que l'on découvre à la fin**\\ | ||
+ | doc : http://www.motoslave.net/sugarcube/2/docs/ | ||
+ | |||
+ | <accordion> | ||
+ | <panel title="quizz_type_magazine.twee (cliquer pour afficher le code)"> | ||
+ | <code quizz_type_magazine.twee> | ||
+ | :: StoryTitle | ||
+ | quizz | ||
+ | |||
+ | :: StoryData | ||
+ | { | ||
+ | "ifid": "B93FA341-C13B-4731-A513-AD27D51B5239", | ||
+ | "format": "SugarCube", | ||
+ | "format-version": "2.37.3", | ||
+ | "start": "Question IST", | ||
+ | "zoom": 1 | ||
+ | } | ||
+ | |||
+ | |||
+ | :: Question 1 {"position":"400,225","size":"100,100"} | ||
+ | Question 1: Comment ça va ? | ||
+ | |||
+ | |||
+ | <<link "bof" "Question 2">><<set $counts["A"] += 1>><</link>> | ||
+ | <<link "moyen" "Question 2">><<set $counts["B"] += 1>><</link>> | ||
+ | <<link "bien" "Question 2">><<set $counts["C"] += 1>><</link>> | ||
+ | <<link "bien bien" "Question 2">><<set $counts["D"] += 1>><</link>> | ||
+ | <<link "top" "Question 2">><<set $counts["E"] += 1>><</link>> | ||
+ | |||
+ | |||
+ | :: Question 2 {"position":"525,225","size":"100,100"} | ||
+ | Question 2 : on est quel jour ? | ||
+ | |||
+ | <<link "lundi" "Question 3">><<set $counts["A"] += 1>><</link>> | ||
+ | <<link "mardi" "Question 3">><<set $counts["B"] += 1>><</link>> | ||
+ | <<link "mercredi" "Question 3">><<set $counts["C"] += 1>><</link>> | ||
+ | <<link "jeudi" "Question 3">><<set $counts["D"] += 1>><</link>> | ||
+ | <<link "vendredi" "Question 3">><<set $counts["E"] += 1>><</link>> | ||
+ | |||
+ | |||
+ | :: Question 3 {"position":"650,225","size":"100,100"} | ||
+ | Question 3 : quelle garniture dans ta crêpe ? | ||
+ | |||
+ | <<link "complète" "Resultat">><<set $counts["A"] += 1>><</link>> | ||
+ | <<link "frites merguez harissa" "Resultat">><<set $counts["B"] += 1>><</link>> | ||
+ | <<link "sucre" "Resultat">><<set $counts["C"] += 1>><</link>> | ||
+ | <<link "beurre (beaucoup)" "Resultat">><<set $counts["D"] += 1>><</link>> | ||
+ | <<link "chocolat amandes chantilly" "Resultat">><<set $counts["E"] += 1>><</link>> | ||
+ | |||
+ | |||
+ | :: Resultat {"position":"400,350","size":"100,100"} | ||
+ | <<silently>> | ||
+ | /* Determine the maximum count and the choice(s) that equal it. */ | ||
+ | <<set _maxCount to 0>> | ||
+ | <<set _maxChoices to []>> | ||
+ | <<for _choice, _count range $counts>> | ||
+ | <<if _count gt _maxCount>> | ||
+ | <<set _maxCount to _count>> | ||
+ | <<set _maxChoices to [_choice]>> | ||
+ | |||
+ | <<elseif _count is _maxCount>> | ||
+ | <<set _maxChoices.push(_choice)>> | ||
+ | <</if>> | ||
+ | <</for>> | ||
+ | <</silently>>\ | ||
+ | |||
+ | \Result was _maxCount/10 for <<nobr>> | ||
+ | <<if _maxChoices.length gt 1>> | ||
+ | <<= _maxChoices.join(" and ") >> | ||
+ | <<else>> | ||
+ | _maxChoices[0] | ||
+ | <</if>> | ||
+ | <</nobr>> | ||
+ | |||
+ | \<<if _maxChoices.includes("A")>><br>Profil A<</if>> | ||
+ | \<<if _maxChoices.includes("B")>><br>Profil B<</if>> | ||
+ | \<<if _maxChoices.includes("C")>><br>Profil C<</if>> | ||
+ | \<<if _maxChoices.includes("D")>><br>Profil D<</if>> | ||
+ | \<<if _maxChoices.includes("E")>><br>Profil E<</if>> | ||
+ | |||
+ | |||
+ | :: StoryInit {"position":"400,100","size":"100,100"} | ||
+ | <<set $counts to { | ||
+ | "A": 0, | ||
+ | "B": 0, | ||
+ | "C": 0, | ||
+ | "D": 0, | ||
+ | "E": 0 | ||
+ | }>> | ||
+ | |||
+ | </code> | ||
+ | </panel> | ||
+ | </accordion> | ||
+ | |||
+ | (avec Sugarcube 2.37.3) Pour **afficher la réponse sur demande et passer à la question suivante** :\\ | ||
+ | doc : http://www.motoslave.net/sugarcube/2/docs/ | ||
+ | |||
+ | <code> | ||
+ | Qu'est-ce qu'une infection sexuellement transmissible ? | ||
+ | |||
+ | 1) une maladie qui se transmet uniquement par voir aérienne | ||
+ | 2) Une infection qui peut être transmise uniquement lors d'une relation non protégée | ||
+ | 3) Une douleur ressentie après un rapport sexuel | ||
+ | |||
+ | |||
+ | <<linkreplace "Réponse" t8n>>\ | ||
+ | Réponse 2, il s'agit d'une infection qui peut être transmise uniquement lors d'une relation non protégée | ||
+ | | ||
+ | <<link "Cliquer pour la question suivante" "Question 4">><<set $counts["A"] += 1>><</link>> | ||
+ | <</linkreplace>>\ | ||
+ | </code> | ||
+ | |||
+ | |||
+ | |||
+ | (avec Sugarcube 2.37.3) Pour créer un **quizz à points avec résultat à la fin**\\ | ||
+ | doc : http://www.motoslave.net/sugarcube/2/docs/ | ||
+ | |||
+ | <accordion> | ||
+ | <panel title="quizz_a_points.twee (cliquer pour afficher le code)"> | ||
+ | <code quizz_a_points.twee> | ||
+ | :: StoryTitle | ||
+ | quizz_a_points | ||
+ | |||
+ | |||
+ | :: StoryData | ||
+ | { | ||
+ | "ifid": "D51B5239-87D3-4062-9C79-9B6628D5A31B", | ||
+ | "format": "SugarCube", | ||
+ | "format-version": "2.37.3", | ||
+ | "start": "Question 1", | ||
+ | "zoom": 1 | ||
+ | } | ||
+ | |||
+ | |||
+ | :: Question 1 {"position":"500,225","size":"100,100"} | ||
+ | Question 1: L'escargot est un ... | ||
+ | |||
+ | <<link "mammifère" "Question 2">><<set $points += 0>><</link>> | ||
+ | <<link "marsupial" "Question 2">><<set $points += 0>><</link>> | ||
+ | <<link "gastéropode" "Question 2">><<set $points += 1>><</link>> | ||
+ | |||
+ | |||
+ | :: Question 2 {"position":"625,225","size":"100,100"} | ||
+ | Question 2: le loup est un ... | ||
+ | |||
+ | <<link "mammifère" "Results">><<set $points += 1>><</link>> | ||
+ | <<link "marsupial" "Results">><<set $points += 0>><</link>> | ||
+ | <<link "gastéropode" "Results">><<set $points += 0>><</link>> | ||
+ | |||
+ | |||
+ | :: Results {"position":"500,350","size":"100,100"} | ||
+ | Bravo vous avez marqué $points points | ||
+ | |||
+ | <<if $points gte 0 and $points lte 2>> | ||
+ | Profile A | ||
+ | <<elseif $points gte 3 and $points lte 5>> | ||
+ | Profile B | ||
+ | <<elseif $points gte 6 and $points lte 8>> | ||
+ | Profile C | ||
+ | <<else>> | ||
+ | ERROR: The total number of points is outside the expected range, please contact the Developer. | ||
+ | <</if>> | ||
+ | |||
+ | |||
+ | :: StoryInit {"position":"500,100","size":"100,100"} | ||
+ | <<set $points to 0>> | ||
+ | </code> | ||
+ | </panel> | ||
+ | </accordion> | ||
+ | |||