Translations of this page:

This is an old revision of the document!
—-

Hasta el momento hemos experimentado con los recursos que nos integra wme, hemos estado trabajando con las imágenes de la demo, ahora es el momento de tomar el control y comenzar a crear nuestro propio juego desde 0. Inicia el administrador de proyectos y presiona ctrl+N o presiona en File → New. Dale un nombre a tu proyecto y creemos nuestro propio juego.

Como podéis ver, wme crea un nuevo proyecto, y automáticamente, se crean una serie de scripts y ficheros mínimos para que el juego pueda comenzar a funcionar. Bien, lo primero que vamos a hacer, es centrar nuestra atención al fichero donde se controla toda la acción del juego. Este fichero como hemos comentado en anteriores ocasiones, es el fichero game.script y se encuentra en la carpeta scripts de nuestro proyecto.

Puedes encontrarlo fácilmente en el administrador de proyectos. Simplemente este fichero se ejecuta en el momento en que comienza el juego. En este momento, aun no hay nada definido, ni las escenas, ni las imágenes, nada, solo lo básico para que el juego arranque.

Veamos que es lo que tiene el fichero game.scripts, en pequeños bloques:

 
#include "scripts\base.inc"  
#include "scripts\keys.inc" 

Lo primero que vemos, son las clausulas includes, estas lineas servían para incluir unos archivos dentro de otro. En este caso incluimos los archivos “base.inc” y “keys.inc”.

El primero contiene tres variables globales, actor, Scene y Keyboard. Bien, usamos este include, ya que en todo script hay que declarar la variable global Scene antes de poder usar por ejemplo Scene.GetNode(). Aparte, el fichero base.inc, incluye otro fichero llamado const.inc donde se declaran las constantes para las direcciones del actor, y la alineación de texto. Es recomendable en nuestro juego declarar las variables globales y las constantes en este fichero, asi nos ahorraremos tener que incluirlas cada vez que las necesitemos. También podemos crear otros ficheros. Pero eso ya queda a elección del diseñador.

El segundo fichero, “keys.inc” contiene la definición de las teclas y sus códigos numéricos asociados, de esta manera, podremos referenciar por ejemplo la tecla escape con el nombre VK_ESCAPE en lugar de tener que usar su código numérico, en este caso el 27.

 
Keyboard = Game.Keyboard;  
Scene = Game.Scene; 

Como bien sabes, todas las funciones básicas, pertenecen al objeto Game. Pero hay varias razones por las que necesitamos usar variables para referenciar los objetos. Lo primero es que wme no permite la anidación, por lo que no se puede por ejemplo usar:

 
var e = Game.Scene.GetNode("puerta"); 

Y segundo, es mucho mas claro para el programador si escribes Scene.GetNode(“puerta”);

Luego si volvemos a estas lineas:

 
Keyboard = Game.Keyboard;  
Scene = Game.Scene; 

Lo que hemos echo, es crear una variable global llamada keyboard(“base.inc”) que contenga una referencia al objeto keyboard del objeto Game (Game.Keyboard) y servirá para controlar la entrada de teclado. Una pequeña nota – este objeto siempre es el mismo cuando cambiamos entre escenas, por lo que no tienes que reasignarlo cada vez que cambias de escena, ya que esta definido en el fichero game.script, y por ello, sera usable durante todo el proceso de programación.

 
global WinMenu = Game.LoadWindow("interface\menu\menu.window");  
WinMenu.Visible = false; 

Por defecto, estas dos lineas establecen que cuando hagas clic con el botón derecho del ratón sobre un objeto activo, salga un menú con 3 opciones, ahora vamos a eliminar estas lineas.



¿ que es una ventana?

Una ventana es una colección de objetos gráficos(botones, imágenes, campos de edición para entradas de texto,..). Estos objetos son muy útiles a la hora de crear interfaces GUI( interfaz gráfica de usuario). Bien, hablaremos de la construcción de ventanas mas adelante, centrémonos por ahora en lo que estas dos lineas significan. La primera linea, lo que hace es cargar un fichero .windows ( contiene la definición de una ventana gráfica ) y la segunda linea, la establece como invisible. Esta ventana es agregada al objeto Game por eso aunque cambiemos de escena, no afectara a esta ventana. Nota las ventanas son diferentes a las entidades en su atributo de visibilidad, en ventanas es Visible, y en entidades es Active.

var win = Game.LoadWindow("interface\system\caption.window");  
global WinCaption = win.GetWidget("caption");

otras dos lineas para cargar una ventana, en este caso esta se trata de una ventana para mostrar los subtítulos cuando pasas el ratón por encima de algún objeto. Podemos ver un nuevo método, GetWidget() que lo que hace es crear una referencia a una parte especifica de la ventana. Este método es una forma ambigua de hacerlo, ahora se usa el método GetControl, por lo tanto vamos a modificar esta linea:

global WinCaption = win.GetWidget("caption");

Por esta otra

global VentSubtitulos = win.GetControl(“caption”);

La siguiente linea a analizar es esta:

global MenuObject = null;

En esta linea, lo que hacemos es asignar el valor null a la variable global MenuObject que se usará despues para saber donde clikeamos. Null es un valor especial, que indica que esa variable esta vacía. Y si queremos podemos eliminar esta linea.

Seguidamente, analizaremos estas lineas:

actor = Game.LoadActor("actors\molly\molly.actor");  
Game.MainObject = actor;

Estas dos lineas, son importantes. La variable actor, es una variable global definida en el fichero base.inc, bien lo que hacemos aquí, es asignar a esa variable el fichero .actor que vayamos a usar, si queremos usar un actor que nosotros hayamos creado, esta linea es la que debes cambiar:

 
es/wmebook/ch4.1369562913.txt.gz · Last modified: 2013/05/26 12:08 by dongo
Recent changes RSS feed Creative Commons License Driven by DokuWiki