Wintermute Engine Forum

Spanish forum => Foro técnico => Topic started by: bamyito on January 14, 2011, 07:53:59 PM

Title: Compilando.
Post by: bamyito on January 14, 2011, 07:53:59 PM
¡Buenas gente!

Resulta que el otro dia compilé lo poco que tengo hecho para enseñarlo fuera de mi pc como ejemplo. Pues bien, resulta que al ir a la escena BUS (desde los 2 caminos que hay), el actor aparece donde a él le parece bien, cambiando de localización a cada nueva entrada que hago de esta escena (a veces aparece en el centro, otras a la izquierda,... pero nunca en su entrada adecuada). Sin embargo, al ir a las demas escenas (incluso desde la escena BUS) no existe ningún problema. Empieza donde debe.

¿Qué puede estar ocurriendo en esa escena?
Title: Re: Compilando.
Post by: Jose on January 15, 2011, 12:33:39 PM
¿Puedes postear el scene_init.script de la escena BUS?
Title: Re: Compilando.
Post by: bamyito on January 15, 2011, 03:38:24 PM
Faltaría más. ;D

Code: [Select]
#include "scripts\base.inc"

// here comes the stuff which initializes the scene

global Entrada;
switch(Entrada)
{
 case "Camino1":
 actor.SkipTo(1453, 578);
 actor.Direction = DI_LEFT;
 Scene.SkipTo(actor); break;
 
 case "Camino2":
 actor.SkipTo(1456, 119);
 actor.Direction = DI_DOWNLEFT;
 Scene.SkipTo(actor); break;
 
 default:    // Si la escena anterior no se llama "UnaEscena" ni "OtraEscena" ni "UnaEscenaMas", ejecutar el código siguiente hasta el final.
            actor.SkipTo(400, 400);
            actor.Direction = DI_RIGHT;
}

var Fuente = Scene.GetNode("fuente");    // Crear una variable Fuente que sea tu objeto "fuente", si es que se llama así.

switch(Fuente.GetSprite())    // ¿Qué sprite tiene tu fuente?
{
case "scenes\BUS\fuenteon.sprite":    // Si tiene la animación "fuenteon.sprite"...
Fuente.PlaySound("scenes\BUS\stream-3.wav",true);    // ...que reproduzca su sonido.
}

////////////////////////////////////////////////////////////////////////////////
// scene state
global StateBUS;


// default values
if(StateBUS==null)
{
  StateBUS.Visited = false;
  // add scene states here
}



////////////////////////////////////////////////////////////////////////////////
// setup scene according to state variables



////////////////////////////////////////////////////////////////////////////////
if(!StateBUS.Visited)
{
  StateBUS.Visited = true;

  // this is our first visit in this scene...
}
Title: Re: Compilando.
Post by: HelLRaiseR on January 15, 2011, 04:47:01 PM
Evidentemente en alguna de las escenas no has puesto bien el nombre de la entrada y por eso te aparece donde no es.

Hay un tutorial sobre esto escrito por Jyujinkai: http://res.dead-code.org/doku.php/kbase:meaecode aunque no creo que el problema este en como esta hecho sino en que la variable Entreada no esta bien puesta en algun lado.
Title: Re: Compilando.
Post by: Jose on January 15, 2011, 11:46:10 PM
Si quieres colocar al actor en una entrada o en otra en función de la escena anterior yo me quitaría de movidas y en lugar de usar una variable global como haces con la variable Entrada, usaría la función Game.PrevScene para que te devuelva el nombre de la escena de la que viene y en función de ello posicionaría al actor donde te interese.
Title: Re: Compilando.
Post by: bamyito on January 16, 2011, 09:09:47 PM
A ver si no me equivoco demasiado ni digo demasiadas tonterías...

Hellraiser, los nombres tienen que estar bien, porque este error solo me ocurre cuando compilo el juego. Si lo pruebo desde el wintermute, funciona a las mil maravillas. Solo me da este error cuando lo compilo y lo pruebo, lo cual no tiene mucho sentido para mi. Pensaba que la "simulación" que hacía wintermute del juego era idéntica al resultado final.

Jose, haría eso si no me hubiese complicado la vida con el tema de las diferentes entradas de una escena a otra. No puedo colocar al actor solo teniendo en cuenta la escena de la que viene, sino tambien la entrada que ha utilizado.
Title: Re: Compilando.
Post by: bamyito on January 17, 2011, 12:39:29 AM
Vale, acabo de darme cuenta de un mensaje que me manda la consola de errores cuando entro en la escena del bus:

Quote
0:37:18:  WARNING: Referencing absolute path 'c:\documents and settings\eduardo\mis documentos\wme projects\pruebaaa\data\scenes\bus\scr\scene_init.script'. The game will NOT work on another computer.
0:37:18:  WARNING: Referencing absolute path 'c:\documents and settings\eduardo\mis documentos\wme projects\pruebaaa\data\scenes\bus\scr\scene_init.script'. The game will NOT work on another computer.

No sé si tendrá relación con el problema de las entradas, pero no sé por qué me da a mi que si. ???
Title: Re: Compilando.
Post by: Jose on January 17, 2011, 09:17:59 AM
Efectivamente tiene que ver, las rutas debes ponerlas siempre relativas porque sino en el otro ordenador vas a tener que crear las mismas carpetas que tengas en el tuyo para que te funcione.
Title: Re: Compilando.
Post by: bamyito on January 17, 2011, 03:38:15 PM
Rutas relativas... ¿eso quiere decir que solo debo poner la dirección a partir de "data/scenes/..."? ???

mensaje editado: como yo pensaba, no sé hacerlo. me siento como un inutil...
Un poco de ayuda, plis.
Title: Re: Compilando.
Post by: Jose on January 17, 2011, 04:41:14 PM
Abre el archivo de la escena en cuestión (imagino que se llamará bus.scene o algo así) con el bloc de notas. En todas las rutas que veas a lo largo de todo el fichero asegúrate de que quedan como rutas relativas y no como absolutas. Por ejemplo la ruta del script debería quedar como algo así:

SCRIPT="scenes\bus\scr\scene_init.script"

Las rutas deben ser relativas a la carpeta data y por lo tanto ésta no debe entrar en las rutas relativas (no sería "data\scenes\..." sino "scenes\...").

Un saludo.
Title: Re: Compilando.
Post by: bamyito on January 17, 2011, 05:14:14 PM
Yeah! Ya no hay problemas de compilación ni errores en la consola. La basura sigue dando sus contratiempos (exactamente los mismos que antes, vaya), pero seguimos hablando de eso por el otro hilo. ;D