Differences

This shows you the differences between the selected revision and the current
version of the page.


es:faq 2009/05/19 01:59 es:faq 2010/03/17 14:11 current
Line 1: Line 1:
-===== FAQ =====+===== Preguntas y respuestas ===== 
===== P: ¿Cómo configuro la primera escena del juego? ===== ===== P: ¿Cómo configuro la primera escena del juego? =====
-R: Encuentra la línea en data/scripts/game.script que comienza con Game.ChangeScene. Cambia esta línea para mostrar la escena correcta.+R: Busca la línea en data/scripts/game.script que comienza con Game.ChangeScene. Cambia esta línea para mostrar la escena correcta.
-===== P: Mi escena trabaja en Project Manager pero no en modo compilado ==== 
-R: +===== P: Mi escena funciona en Project Manager pero no una vez compilado ====
-===== P: ¿Cómo desactivo el inventorio en una escena? =====+R: Probablemente sea un problema de rutas. Recuerda que debes usar rutas relativas en los paquetes. Si en la demo incluída en WME tienes un paquete llamado **data**, no incluyas **data** en la ruta de los archivos. Por ejemplo, usa la instrucción 
 +<code script> 
 +  Game.ChangeScene("scenes\room\room.scene"); 
 +</code> 
 +y no 
 +<code script> 
 +  Game.ChangeScene("data\scenes\room\room.scene"); 
 +</code> 
 +Otros problemas pueden ocurrir al mover escenas a carpetas anidadas. Tienes que comprobar el archivo de escena que has movido y, además de que la ruta sea correcta, asegurarte de que la variable **$EDITOR_PROJECT_ROOT_DIR$** apunte realmente al directorio raíz.
-R: Normalmente es suficiente con configurar ame.InventoryVisible = false; pero la demo de WME tiene un inventorio móvil, entonces necesitaremos hacer un poco más que eso.+También es importante saber que todos tus efectos, música, etc. deben estar presentes en la carpeta del proyecto o no se incluirán en los paquetes compilados. 
 + 
 + 
 + 
 +===== P: ¿Cómo desactivo el inventario en una escena? ===== 
 + 
 +R: Normalmente es suficiente con configurar Game.InventoryVisible = false; pero la demo de WME tiene un inventario móvil, entonces necesitaremos hacer algo más.
Ve a la siguiente línea en data/scripts/game_daemon.script: Ve a la siguiente línea en data/scripts/game_daemon.script:
Line 25: Line 39:
</code> </code>
-Añade la línea global InventoryActive en data/scripts/base.inc; y para finalizar inserta en el comienzo de data/scripts/game.script la línea InventoryActive = true;+Añade la línea global InventoryActive en data/scripts/base.inc; y para finalizar inserta al principio de data/scripts/game.script la línea InventoryActive = true; 
 +Desde ahora puedes activar/desactivar fácilmente el inventario con la variable InventoryActive en tus archivos scene_init.script.  
 + 
 +===== P: ¿Cómo se ajustan las líneas de string.tab? ===== 
 + 
 +R: Sólo pon | en el sitio que quieras dividir el texto. 
 +Ejemplo: 
 +TXT000001[TAB]Hola, me gustaría hablar contigo sobre | algunacosarealmenteextrañaeincomprensible. 
 + 
 + 
 +===== P: ¿Cómo funcionan los scripts con el texto de string.tab? ===== 
 + 
 +R: Si necesitas asignar un texto a una variable, tienes que llamar a la función Game.ExpandString(). 
 +Por ejemplo: 
 + 
 +<code script>var txt = Game.ExpandString("/TXT000001/"); 
 +Game.Msg(txt);</code> 
 + 
 + 
 +===== P: ¿Cómo funcionan los archivos automáticos de diálogo? ===== 
 + 
 +R: WME tiene la capacidad de reproducir automáticamente archivos de sonido asociados a los códigos de string.tab. Aunque hay algunos detalles que debes evitar. 
 + 
 + 
 +Primero, debes decirle a WME dónde están esos archivos (por defecto, se buscan en la carpeta speech). 
 +Esto se hace de la siguiente manera: 
 + 
 +<code script>Game.AddSpeechDir("Ciudad");</code> 
 + 
 +Tus archivos de sonido deben nombrarse igual que los códigos del archivo  string.tab, por ejemplo, si tienes la siguiente línea: 
 +  CIUDAD0010001 Hola, ¡Me llamo Armitage! 
 +tu archivo de sonido se llamará ciudad0010001.ogg 
 + 
 +Lo último a tener en cuenta es que, si usas las propiedades avanzadas de Talk, debes indicar **null** como segundo parámetro. Por ejemplo, una línea compleja podría ser: 
 + 
 +<code script>actor.Talk("/CIUDAD0010001/", null, 0, "", this.talign);</code> 
 + 
 +(donde this.talign es una variable que almacena el alineamiento del texto) 
 + 
 + 
 +===== P: ¿Cómo se escriben caracteres especiales en las cadenas de texto de WME? ===== 
 + 
 +R: para escribir dobles comillas " usa los siguientes caracteres ~" 
 +para escribir una nueva línea usa los siguientes caracteres ~n 
 + 
 +<code script>actor.Talk("Hola, persona ~"rara~".~n¿Cómo te va?");</code> 
 + 
 + 
 +===== P: ¿Cómo funcionan los Arrays como clase miembro de un objeto propio? ===== 
 + 
 +R: Debido a la limitación de un nivel de la notación con puntos, necesitas un truco con una variable temporal. Aquí tienes un ejemplo: 
 + 
 +file Arrayclass.script?
-//(sin terminar)//+<code script>#include "scripts\base.inc" 
 +  
 +this.Field = new Array(10)
 +  
 +method SetNumber(position,number) 
 +
 +  var tmp = this.Field; 
 +  tmp[position] = number; 
 +  this.Field = tmp; 
 +}</code>
 
es/faq.1242691183.txt.gz · Last modified: 2009/05/19 01:59 by martin_m
Recent changes RSS feed Creative Commons License Driven by DokuWiki