Tabla de contenido:
- Paso 1: crea tu reproductor
- Paso 2: Nuevo código de habitación
- Paso 3: crear un vínculo a partir de una variable
- Paso 4: prueba
- Paso 5: agregar una lista de salas
- Paso 6: Eliminación de habitaciones
- Paso 7: prueba
- Paso 8: rarezas con Sugarcube y objetos
- Paso 9: La función Clone ()
- Paso 10: ¡Eso es todo por ahora
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-23 14:39
¡Estoy tan feliz de que te hayas unido a mí de nuevo! Esto significa que el Wumpus aún no te ha comido. ¡Bien!
Para aquellos de ustedes que no están familiarizados, este es un conjunto de tutoriales que estoy haciendo para ayudar a mi adorable primo widdle con su proyecto de último año. Estos tutoriales están destinados a ser una referencia de lo que puede hacer con algunas de las funciones de programación de Twine y Sugarcube. Si quieres seguir adelante, puedes encontrar el primer tutorial aquí.
En el último tutorial, construí un pequeño conjunto de habitaciones que el jugador puede explorar. Agregué un objeto Wumpus e hice un código de habitación genérico para cambiar lo que se mostraba en cada habitación dependiendo de dónde esté el Wumpus.
Paso 1: crea tu reproductor
Este paso es muy sencillo. Básicamente, solo estoy usando el mismo código que mi $ wumpus, pero con una variable $ player en su lugar.
Paso 2: Nuevo código de habitación
Cambió su código de habitación genérico para que el valor de $ player sea la habitación actual. Luego compare $ wumpus con $ player en lugar de la habitación actual.
Este es un cambio menor y no es totalmente necesario, pero me gusta mantener mi código organizado.
Paso 3: crear un vínculo a partir de una variable
Finalmente, quiero reemplazar el enlace en mi sala de inicio por uno que cambie según el valor de $ player. Esto se puede hacer con la función "" en Sugarcube. Puede leer más sobre eso en la página de documentación de Sugarcube.
La primera cadena después de nuestro comando es la frase que aparecerá en nuestro pasaje. El segundo es el nombre del pasaje al que queremos enlazar. Estoy usando "¡Caza los Wumpus!" como mi frase, pero podríamos usar nuestra variable allí en su lugar si queremos que el jugador sepa a dónde van de antemano, así:
Paso 4: prueba
Cuando pruebes tu código, deberías encontrar que tu enlace ha sido reemplazado con cualquier frase que escribiste antes. Hacer clic en él te lleva a una habitación aleatoria en tu juego.
Desafortunadamente, ¡esto también puede llevarte directamente a la sala de Wumpus! Eso no importa mucho en este momento, pero en un juego real sería un juego instantáneo. Necesitamos arreglar eso.
Paso 5: agregar una lista de salas
Primero, crearemos una lista de salas para facilitar la administración de las mismas. Al declarar esta matriz, podemos usarla para establecer nuestros valores $ player y $ wumpus sin repetir código. También tiene otra ventaja que exploraremos a continuación.
Las pruebas con este código deberían comportarse como antes.
Paso 6: Eliminación de habitaciones
Agregué una sola línea de código al código anterior (resaltado).
Las matrices en Sugarcube tienen una función incorporada que le permite eliminar elementos de ellas por nombre. En este caso, una vez que asignamos una habitación a $ wumpus, podemos eliminar esa habitación de nuestra lista de $ habitaciones. Sin embargo, esta función es delicada. No funcionará a menos que la salida de la función se asigne o se use de alguna manera. Para encargarme de eso, he creado la variable temporal _temp.
En Sugarcube, las variables temporales comienzan con un guión bajo (_) en lugar de un dólar ($). Son útiles porque se eliminan una vez que se ejecuta el pasaje, por lo que no tiene que preocuparse por la superposición de nombres de variables.
También eliminaré la sala de $ player de $ roomlist, como una cuestión de rutina.
Paso 7: prueba
Si bien podríamos ejecutar el código como está ahora, esa no sería una prueba muy completa. Si ejecutamos el código y encontramos que $ player y $ wumpus están asignados a diferentes salas, no sabemos si es porque el código funciona o si es solo una casualidad. Claro, podríamos ejecutar el código muchas veces y asumir que si nunca les asigna a ambos la misma sala, nunca lo hará, pero eso tomará una eternidad y todavía no es una garantía del 100% de que nunca sucederá.
En cambio, necesitamos una forma de comprobarlo.
Agregué tres líneas en la parte superior de nuestro pasaje de introducción que nos permitirán ver los valores de nuestras variables $ wumpus, $ player y $ roomlist. Debido a la forma en que configuramos nuestro código, sabemos que la sala $ wumpus y la sala $ player deben eliminarse de la lista $ room.
Cuando ejecutamos este código, podemos verificar para asegurarnos de que ese sea el caso.
Paso 8: rarezas con Sugarcube y objetos
Los objetos Sugarcube son un poco extraños. Déjame demostrarte esto.
Mientras estaba construyendo este proyecto originalmente, quería guardar mi $ roomlist en una variable $ saveroom antes de comenzar a eliminar habitaciones. Pensé que sería útil más tarde.
Cuando obtuve un comportamiento extraño de este código, agregué otra línea a mi página de introducción para permitirme ver mi variable $ saveroom (segunda imagen).
¡Me sorprendió descubrir que los elementos que había eliminado de $ roomlist también se habían eliminado de mi lista guardada! Puedes ver esto en acción en la tercera imagen.
Esto se debe a que cuando copia una matriz como esta, en realidad no le está diciendo a Twine que copie la matriz, le está diciendo a Twine que estas dos variables son la misma matriz. Cuando le haces algo a la matriz usando una variable, ¡cambia la misma matriz que la otra variable está mirando!
Podemos arreglar esto con la función clone ().
Paso 9: La función Clone ()
Puede leer sobre la función clone () en la página de documentación de Sugarcube.
Una copia "superficial" es lo que estábamos haciendo antes. En lugar de hacer una copia completa de toda la matriz, simplemente asume que su variable está trabajando con la misma matriz. En lugar de una copia superficial, clone () realiza una copia "profunda", que se comporta como cabría esperar. Cada elemento de la matriz se copia en una nueva matriz y está totalmente separado del original.
Si probamos este nuevo código, encontramos que funciona como se esperaba.
Por supuesto, no importa si mantiene $ roomlist o no. Para los propósitos de mi proyecto, no voy a hacerlo. Todo esto fue solo para demostrar copias profundas versus superficiales.
Paso 10: ¡Eso es todo por ahora
Hemos agregado un código que le permite a nuestro jugador comenzar en una habitación aleatoria. Además de eso, hemos eliminado un error en el que el jugador comenzaría en la misma habitación que el Wumpus.
Aprendimos cómo crear enlaces a partir de variables y cómo Sugarcube trata la copia de matrices.
Las cosas están mejorando, ¡pero recién estamos comenzando!
¡Feliz cacería!
Recomendado:
Oficina con pilas. Sistema solar con paneles solares y turbina eólica con conmutación automática Este / Oeste: 11 pasos (con imágenes)
Oficina con pilas. Sistema solar con paneles solares y turbina eólica con conmutación automática de este a oeste: El proyecto: Una oficina de 200 pies cuadrados debe funcionar con baterías. La oficina también debe contener todos los controladores, baterías y componentes necesarios para este sistema. La energía solar y eólica cargará las baterías. Hay un pequeño problema de solo
Habitaciones genéricas en Twine With Sugarcube: 11 pasos
Habitaciones genéricas en Twine con Sugarcube: ¡Hola, hola y bienvenido a mi tutorial sobre cómo construir Wumpus Hunt en Twine con Sugarcube! ¡Twine es una herramienta muy simple, diseñada para crear juegos de aventuras de texto! Mi primita favorita ha decidido hacer un juego con Twine para su proyecto senior, y
Consola Atari Punk con un secuenciador de 8 pasos para bebés: 7 pasos (con imágenes)
Consola Atari Punk con un secuenciador Baby 8 Step: esta construcción intermedia es la consola Atari Punk todo en uno y el secuenciador Baby 8 Step que puedes fresar en la fresadora de PCB de escritorio Bantam Tools. Se compone de dos placas de circuito: una es una placa de interfaz de usuario (UI) y la otra es una placa de utilidad
Uso de umbrales de intensidad de escala de grises variables para visualizar e identificar anomalías en imágenes de mamografías: 9 pasos
Uso de umbrales de intensidad de escala de grises variables para visualizar e identificar anomalías en imágenes de mamografías: el propósito de este proyecto fue identificar y utilizar un parámetro para procesar imágenes de mamografías en escala de grises de diversas clasificaciones de tejido de fondo: graso, glandular graso y amp; Tejido denso. Esta clasificación se utiliza cuando los radiólogos analizan mam
N: Cómo hacer una escultura de acrílico y LED de varias capas con niveles de iluminación variables: 11 pasos (con imágenes)
N: Cómo hacer una escultura de acrílico y LED de varias capas con niveles de iluminación variables: aquí puede descubrir cómo hacer su propia n como hecha para la exposición www.laplandscape.co.uk curada por el grupo de arte / diseño Lapland. Se pueden ver más imágenes en flickr. Esta exposición estará abierta desde el miércoles 26 de noviembre hasta el viernes 12 de diciembre de 2008 inclusive