Wintermute Engine Forum

Spanish forum => Foro técnico => Topic started by: SPM on March 24, 2010, 10:16:04 PM

Title: Problema con los actores
Post by: SPM on March 24, 2010, 10:16:04 PM
Hola a todos, me llamo Pedro hace un tiempo me anime a hacer una aventura grafica con el Wintermute, y como no...
me han surgido algunos problemillas, uno de estos es con los actores, cuando intento cargar a alguno de estos en el escenario o no me aparece o directamente me sale un recuadro diciendo que la imagen esta mal. No se si hago algo mal con los scripts o directamente soy un negado...

Muchas gracias.
Title: Re: Problema con los actores
Post by: HelLRaiseR on March 25, 2010, 05:10:48 PM
Lo unico que se me ocurre es que despues de hacer el sprite hayas cambiado los graficos de sitio y no los encuentre. Danos alguna pista mas, porque es un problema raro, no tiene mucho misterio.
Title: Re: Problema con los actores
Post by: SPM on March 25, 2010, 09:43:51 PM
Creo que eso no es, lo revisado mil y una veces.

Te paso el codigo de .actor de mi personaje a ver si ves alguna cosa extraña.



ACTOR
{

  NAME = "Laura"
  CAPTION="Laura"
  X = 250
  Y = 351
  SCALABLE = TRUE
  INTERACTIVE = TRUE
  COLORABLE=TRUE
  ROTATABLE = FALSE
  SOUND_PANNING=TRUE
  SCRIPT="actors\Laura\Laura.script"
  FONT = "fonts\outline_white.font"

 
    ANIMATION
  {
    NAME       = "idle"
   
    LEFT       = "actors\Laura\idle\idleiz.sprite"
    RIGHT      = "actors\Laura\idle\idlede.sprite"
    UP         = "actors\Laura\idle\idletra.sprite"
    DOWN       = "actors\Laura\idle\idlede.sprite""

  } 


 ANIMATION
  {
    NAME       = "walk"
   
    LEFT       = "actors\Laura\walk\perfiles\perfiliz\walkiz.sprite"
    RIGHT      = "actors\Laura\walk\perfiles\perfilde\walkperde.sprite"
    UP         = "actors\Laura\walk\frente\walkf.sprite"
    DOWN       = "actors\Laura\walk\espaldas\walkes.sprite"

  } 
}
Title: Re: Problema con los actores
Post by: newbits on March 26, 2010, 12:04:05 AM
Probablemente me esté equivocando y, la verdad, no tengo conocimientos como para ayudarte a nivel de código. Sólo por si te sirve de algo, he observado dos cosas que me resultan 'raras':

1. En el primer Animation, el correspondiente a "Idle". El Sprite que corresponde a RIGHT y el que corresponde a DOWN tienen el mismo nombre y localización. No se si esto puede generar algún tipo de conflicto para Wintermute.
2. Además, veo que el sprite que corresponde a DOWN termina con un doble entrecomillado "".

  ANIMATION
  {
    NAME       = "idle"
   
    LEFT       = "actors\Laura\idle\idleiz.sprite"
    RIGHT      = "actors\Laura\idle\idlede.sprite"
    UP          = "actors\Laura\idle\idletra.sprite"
    DOWN      = "actors\Laura\idle\idlede.sprite""

  }

Espero que pueda ayudarte en algo.
Saludos!
Title: Re: Problema con los actores
Post by: SPM on March 26, 2010, 04:55:43 PM
Si, muchas gracias por la ayuda, era eso, aunque tambien era culpa de un par de comillas de mas que habia puesto. :P
Eso pasa por no repasar mil veces las cosas. Ahora tengo otro gran problemo...:P
En el juego no se me mueve el actor, se queda parado y no camina ni sigue al mouse...ni nada de nada. ( Siempre problemas)

Title: Re: Problema con los actores
Post by: HelLRaiseR on March 27, 2010, 02:25:58 PM

En el game.script tienes que cargar el actor y asignarlo como objeto principal:

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


La variable "actor" está definida en const.inc si has usado la plantilla de wme, si no, tendrás que hacer un
global actor;
antes del código anterior.

Para que vaya hacia un lugar de la escena al hacer clic con el ratón en el scene.script tienes que usar:

on "LeftClick"
{
  actor.GoTo(Scene.MouseX, Scene.MouseY);
}


Lo mejor es que cojas el proyecto de tutorial de wme, te lo estudies y lo limpies para usarlo como proyecto base, ya que tiene todo lo necesario ya montado: el actor definido, el scripts de bucle asociado al juego, los includes de constantes, etc.

Sustituyes el actor "molly" por el tuyo y usas la escena del tutorial para probar tu actor y cuando ya lo tengas todo rodado, pues te la cargas y ya empiezas a añadir escenas nuevas.


Title: Re: Problema con los actores
Post by: SPM on March 28, 2010, 09:30:13 PM
Los scripts del tutorial son lo que uso para la base, pero igualmente me va mal, no se si a lo mejor e sacado o e puesto algo mal en este.

nclude "scripts\base.inc"

// here comes the stuff which initializes the scene

actor.SkipTo(1568, 642);
actor.Direction = DI_LEFT;
actor.Active = true;


////////////////////////////////////////////////////////////////////////////////
// scene state
global Stateparada;

// default values
if(Stateparada==null)
{
  Stateparada.Visited = false;
  Stateparada.FanSpeed = 4;
}




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



Tambien otro fallo que veo en la escena, es que siempre cuando empieza la escena hace un barrido de esta hasta llegar al personaje, y no se que parte del script se usa para sacar esta opción.
Title: Re: Problema con los actores
Post by: HelLRaiseR on March 29, 2010, 10:06:08 AM
bueno, la primera linea es include en vez de nclude, pero supongo que ese habrá sido al copiar y pegar.

Fijate en lo que estas haciendo:

actor.SkipTo(1568, 642);

Posicionas al actor en 1568 horizontal y 642 vertical, esta coordenada es muy grande, si la resolucion que tienes es menor, el actor estará fuera de pantalla y no se verá, como en esas coordenadas no tendrás una zona "walkable", tampoco andará. Mira a ver si es esto.

El resto está bien, si has definido correctamente el fichero del actor, en el scene.script tienes puesto el "actor.GoTo(Scene.MouseX, Scene.MouseY);" en el evento "onClick" y has cargado el actor en game.script con "actor = Game.LoadActor("actors\Laura\Laura.actor");" tal y como dijimos en el post anterior, te tendría que funcionar sin problemas.

La línea "Stateparada.FanSpeed = 4;" te sobra, es una variable que se usa en la demo para controlar la velocidad del ventilador que esta en la mesa.

Con respecto a lo del scroll de la pantalla, lo unico que tienes que hacer es poner en el scene_init.script de la escena en la que no quieres que se desplace la pantalla una llamada a la funcion skipTo asi: Scene.SkipTo(actor);

Esto hará que al inicializar la escena la camara salte al actor, por lo que cuando la escena se muestre ya estará posicionada y no se recorrera la escena hasta que llegue.

De todas formas, lo que tambien puedes hacer es subirle la velocidad al scroll para que no tarde tanto.


Title: Re: Problema con los actores
Post by: SPM on March 29, 2010, 04:58:15 PM
Muchas gracias por la ayuda, e solucionado el movimiento en algunas escenas, pero hay una que me puede. ( La posicion del personaje es grande porque la escena es muy larga, es de 2014 X 768, la medida del juego es de 1024 X 768)
No se sabe el motivo pero en esa misma escena solo camina el personaje hacia el punto de salida, no camina hacia otro punto, ademas los puntos interactivos no reaccionan cuando hago salir el menu de hablar, coger... ( eso ultimo me pasa en todas las escenas).



#include "scripts\base.inc"

// scene state
global Stateparada;

// default values
if(Stateparada==null)
{
  Stateparada.Visited = false;
}


actor.SkipTo(1568, 645);
actor.Direction = DI_LEFT;
Scene.SkipTo(actor.X, actor.Y);



if(!Stateparada.Visited)
{
  Stateparada.Visited = true;
}

global WinHints;
WinHints.Init();


Siento ser tan cansino.  :'(
Title: Re: Problema con los actores
Post by: HelLRaiseR on April 04, 2010, 08:10:36 PM
Suena a problema con los waypoints, igual estan mal definidos, o el hot spot del personaje se te ha ido por ahi, o alguna cosa de esas, pero no creo que sea problema del código. El código que has puesto en principio está bien.

Si quieres mandame la escena a fnavarro (a) adventureboxstudios . com y la hecho un vistazo.