Table des matières:
- Étape 1: Créez votre lecteur
- Étape 2: Nouveau code de chambre
- Étape 3: Création d'un lien à partir d'une variable
- Étape 4: Tester
- Étape 5: Ajouter une liste de pièces
- Étape 6: Élimination des pièces
- Étape 7: Tester
- Étape 8: Bizarreries avec Sugarcube et objets
- Étape 9: La fonction Clone()
- Étape 10: C'est tout pour l'instant
Vidéo: Liens à partir de variables dans Twine avec Sugarcube : 10 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Je suis tellement content que tu me rejoignes à nouveau ! Cela signifie que le Wumpus ne vous a pas encore mangé. Bon!
Pour ceux d'entre vous qui ne sont pas familiers, voici un ensemble de tutoriels que je suis en train de créer pour aider mon adorable cousine oochy-skootchy widdle avec son projet senior. Ces tutoriels sont censés être une référence pour ce que vous pouvez faire avec certaines des fonctionnalités de programmation de Twine et Sugarcube. Si vous voulez suivre, vous pouvez trouver le premier tutoriel ici.
Dans le dernier tutoriel, j'ai construit un petit ensemble de pièces que le joueur peut explorer. J'ai ajouté un objet Wumpus et créé un code de pièce générique pour modifier ce qui était affiché dans chaque pièce en fonction de l'endroit où se trouve le Wumpus.
Étape 1: Créez votre lecteur
Cette étape est très simple. Essentiellement, j'utilise simplement le même code que mon $wumpus, mais avec une variable $player à la place.
Étape 2: Nouveau code de chambre
Modification de votre code de salle générique afin que la valeur de $player soit la salle actuelle. Comparez ensuite $wumpus à $player au lieu de la salle actuelle.
C'est un changement mineur, et pas totalement nécessaire, mais j'aime garder mon code organisé.
Étape 3: Création d'un lien à partir d'une variable
Enfin, je veux remplacer le lien dans ma salle de départ par un autre qui change en fonction de la valeur de $player. Cela peut être fait avec la fonction "" dans Sugarcube. Vous pouvez en savoir plus à ce sujet dans la page de documentation de Sugarcube.
La première chaîne après notre commande est la phrase qui apparaîtra dans notre passage. Le second est le nom du passage vers lequel nous voulons établir un lien. J'utilise "Chasse le Wumpus !" comme ma phrase, mais nous pourrions utiliser notre variable à la place si nous voulons que le joueur sache à l'avance où il va, comme ceci:
Étape 4: Tester
Lorsque vous testez votre code, vous devriez constater que votre lien a été remplacé par la phrase que vous avez écrite auparavant. En cliquant dessus, vous accédez à une pièce aléatoire de votre jeu.
Malheureusement, cela peut aussi vous emmener directement dans la salle Wumpus ! Cela n'a pas beaucoup d'importance pour le moment, mais dans un vrai jeu, ce serait un jeu instantané. Nous devons régler cela.
Étape 5: Ajouter une liste de pièces
Tout d'abord, nous allons créer une liste de salles, pour faciliter la gestion des salles. En déclarant ce tableau, nous pouvons l'utiliser pour définir nos valeurs $player et $wumpus sans répéter le code. Il a également un autre avantage que nous explorerons ensuite.
Tester avec ce code devrait se comporter comme avant.
Étape 6: Élimination des pièces
J'ai ajouté une seule ligne de code au code d'avant (mis en surbrillance).
Les tableaux dans Sugarcube ont une fonction intégrée qui vous permet de supprimer des éléments par leur nom. Dans ce cas, une fois que nous avons attribué à $wumpus une pièce, nous pouvons supprimer cette pièce de notre $roomlist. Cette fonction est cependant capricieuse. Cela ne fonctionnera que si la sortie de la fonction est affectée ou utilisée d'une manière ou d'une autre. Pour m'en occuper, j'ai créé la variable temporaire _temp.
Dans Sugarcube, les variables temporaires commencent par un trait de soulignement (_) au lieu d'un dollar ($). Ils sont utiles car ils sont supprimés une fois le passage exécuté, vous n'avez donc pas à vous soucier du chevauchement des noms de variables.
Je supprime également la salle $player de $roomlist, tout naturellement.
Étape 7: Tester
Bien que nous puissions exécuter le code tel qu'il est actuellement, ce ne serait pas un test très approfondi. Si nous exécutons le code et trouvons que $player et $wumpus sont affectés à des pièces différentes, nous ne savons pas si c'est parce que le code fonctionne, ou si c'est juste par hasard. Bien sûr, nous pourrions exécuter le code plusieurs fois et supposer que s'il ne leur attribue jamais la même pièce, cela ne le fera jamais, mais cela prendra une éternité et ce n'est toujours pas une assurance à 100% que cela ne pourra jamais arriver.
Au lieu de cela, nous avons besoin d'un moyen de vérifier.
J'ai ajouté trois lignes en haut de notre passage d'introduction qui nous permettront de voir les valeurs de nos variables $wumpus, $player et $roomlist. En raison de la façon dont nous avons configuré notre code, nous savons que la salle $wumpus et la salle $player doivent être éliminées de la liste $room.
Lorsque nous exécutons ce code, nous pouvons vérifier que c'est le cas.
Étape 8: Bizarreries avec Sugarcube et objets
Les objets Sugarcube sont un peu étranges. Permettez-moi de le démontrer.
Pendant que je construisais ce projet à l'origine, je voulais enregistrer ma $roomlist dans une variable $saveroom avant de commencer à en supprimer des pièces. J'ai pensé qu'il serait utile plus tard.
Lorsque j'ai eu un comportement étrange de ce code, j'ai ajouté une autre ligne à ma page d'introduction pour me permettre de regarder ma variable $saveroom (deuxième image).
J'ai été choqué de constater que les éléments que j'avais supprimés de $roomlist avaient également été supprimés de ma liste enregistrée ! Vous pouvez le voir en action sur la troisième photo.
En effet, lorsque vous copiez un tableau comme celui-ci, vous ne dites pas à Twine de copier le tableau, vous dites à Twine que ces deux variables sont le même tableau. Lorsque vous faites quelque chose sur le tableau en utilisant une variable, cela change le même tableau que l'autre variable regarde !
Nous pouvons résoudre ce problème avec la fonction clone().
Étape 9: La fonction Clone()
Vous pouvez en savoir plus sur la fonction clone() sur la page de documentation de Sugarcube.
Une copie « superficielle » est ce que nous faisions auparavant. Au lieu de faire une copie complète de l'ensemble du tableau, cela suppose simplement que votre variable fonctionne avec le même tableau. Au lieu d'une copie superficielle, clone() effectue une copie "profonde", qui se comporte comme vous vous en doutez. Chaque élément du tableau est copié dans un nouveau tableau et est totalement séparé de l'original.
Si nous testons ce nouveau code, nous constatons qu'il fonctionne comme prévu.
Bien sûr, peu importe que vous gardiez $roomlist ou non. Pour les besoins de mon projet, je ne le ferai pas. C'était juste pour démontrer des copies profondes contre des copies peu profondes.
Étape 10: C'est tout pour l'instant
Nous avons ajouté un code qui permet à notre joueur de commencer dans une pièce aléatoire. En plus de cela, nous avons éliminé un bug où le joueur commençait dans la même pièce que le Wumpus.
Nous avons appris comment créer des liens à partir de variables et comment la copie de tableau est traitée par Sugarcube.
Les choses s'accélèrent, mais nous ne faisons que commencer !
Bonne chasse!
Conseillé:
Chambres génériques dans Twine With Sugarcube : 11 étapes
Chambres génériques dans Twine avec Sugarcube : Bonjour bonjour et bienvenue dans mon tutoriel sur la construction de Wumpus Hunt dans Twine avec Sugarcube ! Twine est un outil très simple, conçu pour créer des jeux d'aventure textuels ! Ma petite cousine préférée a choisi de faire un jeu avec Twine pour son projet senior, un
Générer des liens d'affiliation Banggood (parrainage) plus facilement que jamais : 4 étapes
Générer des liens d'affiliation (référence) Banggood plus facilement que jamais : une version condensée de cette instructable peut être trouvée sur mon blog personnelLes ventes d'affiliation sont une excellente source de revenus supplémentaires pour les créateurs de contenu, et de nombreuses personnes sur les instructables les utilisent. programme d'affiliation est Ban
Utilisation de seuils d'intensité variables en niveaux de gris pour visualiser et identifier les anomalies dans les images de mammographie : 9 étapes
Utilisation de seuils d'intensité variables en niveaux de gris pour visualiser et identifier les anomalies dans les images de mammographie : le but de ce projet était d'identifier et d'utiliser un paramètre pour traiter les images de mammographie en niveaux de gris de diverses classifications de tissus de fond : gras, gras glandulaire, & Tissu dense. Cette classification est utilisée lorsque les radiologues analysent mam
Pince à dénuder de précision - Nouveaux liens vidéo : 3 étapes
Pince à dénuder de précision - Nouveaux liens vidéo : Pince à dénuder rotative manuelle à partir d'un stylo Bic, d'un tournevis et d'une lame de rasoir. J'ai récemment acheté une bobine de fil de téflon 30AWG. J'ai pensé que ce serait génial pour le prototypage, car un fer à souder chaud ne fera pas fondre l'isolation. Eh bien, ce n'est en quelque sorte pas
N : Comment faire une sculpture acrylique et LED multicouche avec des niveaux d'éclairage variables : 11 étapes (avec photos)
N : Comment faire une sculpture multicouche en acrylique et LED avec des niveaux d'éclairage variables : Ici, vous pouvez découvrir comment vous faire votre propre n comme réalisé pour l'exposition www.laplandscape.co.uk organisée par le groupe d'art/design Laponie. Plus d'images peuvent être vues sur flickrCette exposition se déroule du mercredi 26 novembre au vendredi 12 décembre 2008 inclusi