inicio | documentación | contacto
Version para imprimir Imprimir
Inicio » Documentación » Lo minimo para empezar

Lo minimo para empezar

Ahora que ya sabemos que es el modelo del mundo, vamos a crear la aventura más sencilla posible. Es decir, vamos a crear un programa que contenga los mínimos elementos necesarios para ser jugado.

Localidad + personaje jugador

Toda aventura debe contener, como mínimo, un objeto Main, un personaje que encarne al jugador y una localidad donde situarlo. Sin alguno de estos elementos, la aventura no sería jugable y fallaría al empezar. Además, es necesario utilizar el modelo de mundo, el cual viene definido en la librería system/default, que deberemos incluir también.

Copiar | Descargar
include system/default

object Main:MainBase
    def start
        Estado.jugador = McAventura
    end
object

/**
* El objeto jugador
*/
object McAventura:Personaje dentro:Habitacion
    nombre MS:Mc Aventura
endobject

/**
* Localidades
*/
object Habitacion:Localidad
    nombre MS:Habitación
endobject
Archivo: system/repositorio/!1-1-Basico.k | Abrir el repositorio de ejemplos
  • La sentencia include carga la librería del sistema y, por tanto, el modelo de mundo.
  • El objeto Main es obligatorio. En el podemos implementar el método start, que se ejecutará solamente una vez, al inicio de la aventura, y donde le decimos al sistema cuál de todos los objetos creados es el objeto jugador.
  • El objeto McAventura es el objeto jugador. Debe heredar de la clase Personaje (definida en la librería), ya que esta clase contiene varios métodos para el movimiento y control de personajes en el juego. El nombre McAventura no es obligatorio, ya que puede llamarse de cualquier otra manera. Lo que si es obligatorio es el hecho de crear un objeto personaje que encarne al propio jugador.
    • La posición del jugador se determina con dentro:Habitacion.
    • Además, se le da un nombre al personaje. El MS: delante del nombre indica que es Masculino Singular.
  • El objeto Habitacion es un objeto que debe heredar de la clase Localidad (o, al menos, tener el flag localidad)
    • Las localidades no tienen posición (no es necesario).
    • También se le da un nombre a la localidad.

El identificador de los objetos o id (McAventura y Habitacion en este ejemplo) tiene que ser único, por lo que no se puede repetir o utilizar en otro objeto. Solo puede contener letras y números (pero no puede estar compuesto solo de números) y distingue entre mayúsculas y minúsculas, por lo que no es lo mismo McAventura que mcaventura o MCAVENTURA. Es necesario elegir el id de los objetos con cuidado de manera que sean claros y fáciles de recordar, pues es con los ids de los objetos con los que trabajaremos internamente para codificar los puzzles de la aventura y cualquier otra operación.

Detrás del id puede ir, opcionalmente, la clase de la que hereda el objeto separado por dos puntos :. En este ejemplo, los objetos heredan de Personaje y Localidad que son dos clases definidas en la librería, aunque podrían heredar de cualquier otra, o de ninguna.

Mejorándolo un poco

Copiar | Descargar
include system/default

object Main:MainBase
    def start
        Config.campolocalidad = "header_left1"
        Config.campoquien = "header_left2"
        Config.campoturno = "header_right1"

        println "Mi primera aventura."
        println "Version 1.0 - Primavera del 2008"

        Estado.jugador = McAventura
        #jugador.accion(Mirar)
    end
endobject

/**
* El objeto jugador
*/
object McAventura:Personaje dentro:Habitacion
    nombre MS:Mc Aventura
    def alMirar: "Eres Mc Aventura, el protagonista de esta historia."
endobject

/**
* Localidades
*/
object Habitacion:Localidad
    nombre MS:Habitación
    def alMirar: "Estás en tu habitación, cálida y soleada, de donde parten tus primeros recuerdos."
endobject
Archivo: system/repositorio/!1-2-Basico.k | Abrir el repositorio de ejemplos

La función start ahora ha crecido bastante. Las tres primeras lineas sirven para configurar la plantilla y definir los campos donde se pintarán la localidad actual, el personaje con el que jugamos y el turno en la cabecera de la página. Estos campos están definidos en el skin de la aventura, que es el html donde se juega. El skin por defecto incluye estos tres campos, por eso los utilizamos en la configuración. Más adelante aprenderemos a crear skins y nuevos campos, ahora simplemente utilizamos los ya existentes en el skin por defecto.

Después, las instrucciones println se encargan de imprimir un par de línea de presentación. En este momento se puede añadir un texto de introducción más largo, el copyright de la aventura, el autor y la versión por ejemplo, que se mostrarán al iniciar la aventura por primera vez.

Finalmente, se define que objeto será el jugador y se añade la ejecución automática de la acción Mirar, que nos mostrará la descripción de la localidad actual (es decir, imprimirá Habitacion.alMirar)

Si pruebas la orden reiniciar, se destruirá la partida actual y se ejecutará de nuevo la función start.

Esto es lo que aparecerá al iniciar una partida por primera vez o reiniciar: el texto de introducción de la función start y el resultado de la acción mirar.

Mi primera aventura.
Version 1.0 - Primavera del 2008
Habitación
Estás en tu habitación, cálida y soleada, de donde parten tus primeros recuerdos.

Salidas posibles: ninguna.

Es interesante que el jugador y la localidad principal tengan una descripción. El evento alMirar del objeto McAventura devuelve el texto que se debe mostrar con la orden examinate.

>> examinate
Eres Mc Aventura, el protagonista de esta historia.

Y el evento alMirar del objeto Habitacion devuelve el texto que se mostrará con la orden mirar o con m.

>> m
Habitación
Estás en tu habitación, cálida y soleada, de donde parten tus primeros recuerdos.

Salidas posibles: ninguna.

Resumen

Ahora sabemos que lo básico para comenzar una aventura es crear un objeto jugador y una localidad y decirle al sistema quién es el jugador actual. El método start sirve para configurar la aventura y se ejecuta sólo una vez en cada nueva partida, por lo que podemos imprimir un mensaje de introducción o presentación.

Todos los objetos deben tener un nombre, incluido las localidades y el personaje jugador. Cada nombre debe especificar antes su sexo y genero con MS: masculino singular, FS: femenino singular, MP: masculino plural o FP: femenino plural justo antes del nombre, por ejemplo nombre MS:McAventura.

El objeto jugador debe heredar de la clase Personaje y las localidades de la clase Localidad.

También hemos aprendido las siguientes ordenes y acciones:

  • mirar o m, que invoca la accion Mirar, y que nos muestra la descripción de la localidad actual que se encuentra en el evento alMirar.
  • examinate, mirate o exte, que invoca la accion Examinar (siendo el objeto de esta acción automáticamente el propio jugador) y que nos muestra también la descripción de nuestro personaje, en el evento alMirar.
  • reiniciar, que destruye la partida actual e inicia una nueva, invocando de nuevo a la función start.
InicioSiguiente: Unir varias localidades y moverse entre ellas
Última modificación: lunes 29 de diciembre de 2008 9:37:30
Fecha de creación: miércoles 9 de abril de 2008 10:33:27
Categorías: