Como Modificar las Propiedades de un Objeto y luego Otro, sin que revuelvan

5 views
Skip to first unread message

Esteban Esteban

unread,
Dec 20, 2006, 4:20:59 PM12/20/06
to lua...@googlegroups.com
Hola:
          En realidad estoy tratando más bien con una estructura,,, que un objeto propiamente tal,, para probarlo,, lo que necesito es poder referenciar solo algunas funciones,, les hago un grafica para explicarlo,,, mejor..

Enemigos {
      COORD   Origen
      COORD  Destino
      char       ScriptFile[32];
Public:
      Init( )
      Play( )
      Mover( )
}
 
Objetos {
   void *dpData;
}
 
Objetos   aObj[100];
 
Ahora bien si tengo un arreglo,, con un campo,, void *dpData, y a cada objeto del array puedo asignar diferentes tipos de Enemigos,, solo me interesa referenciar el Metodo Mover, de cada uno, pues tienen asociado un archivo script diferente,, pues en la llamada en luaL_dofile(" .... "); se supone que debe tomar las propiedades del objeto que lo contiene,, pero el objeto no me varia.., solo lee,, y no cambia nada...

esto se hace con

lua_pushlightuserdata(L,  (void*)  aObj[  n  ]->dpData);
 
lua_setglobal(L,"GameObject");
 
segun los ejemplos de Wiki,, pero esta orientado a solo trabajr un objeto de un tipo a al vez,, y con un solo archivo script,,
bien,, la pregunta es:
 
Si en el Array tengo multiples Objetos de distintos tipos,, con didtisntos metodos,, ya hago una barrida,, a la vez,, por un metodo,, llamado Play( ), comun a todos los objetos,, como altero,, los datos a ese objeto propio,, si que se revuelvan con los datos de los otros objetos,,, en los casilleros del Array.
 
Si faltan instrucciones,, please de alojar  o librar diganme,,, o escribanme un pequeño sample,,, pues hay muy pocos de lua 5.1,, ok,,
De antemano Gracias !!!!!!
 
Bye Bye !!!!
 
esbxp.-
 
 
Bye Bye !!!
 
 
 

Jose L. Hidalgo

unread,
Dec 21, 2006, 7:13:16 PM12/21/06
to lua-es
Hola Esteban,

La verdad es que no consigo entender muy bien qué es lo que quieres
hacer con lua y cómo tienes distribuidos los ficheros, los objetos,
etc. Por ejemplo, ¿cómo llamas desde lua a C para cambiar el estado
de los objetos? ¿Tienes registradas funciones para manejar esos
lightUserdata de los que haces push? ¿Cada enemigo utiliza un script
diferente o funciones dentro del mismo?

Cómo son muchas preguntas las centro respecto a tu mail.

On Dec 20, 10:20 pm, "Esteban Esteban" <esbva2...@gmail.com> wrote:

> Ahora bien si tengo un arreglo,, con un campo,, void *dpData, y a cada
> objeto del array puedo asignar diferentes tipos de Enemigos,, solo me
> interesa referenciar el Metodo Mover, de cada uno, pues tienen asociado un
> archivo script diferente,, pues en la llamada en luaL_dofile(" .... "); se
> supone que debe tomar las propiedades del objeto que lo contiene,, pero el
> objeto no me varia.., solo lee,, y no cambia nada...

¿Cómo referencias el método? ¿Registras en lua alguna función para
hacerlo? ¿Qué quieres decir con que el objeto no varía?

> esto se hace con
>
> lua_pushlightuserdata(L, (void*) aObj[ n ]->dpData);
>
> lua_setglobal(L,"GameObject");

Cón esto estás asignando una variable global llamada "GameObject" que
apunta a un lighuserdata (void*)... pero tienes algún tipo de función
registrada para usarlo luego? pasas ese lightuserdata a otras
funciones?

> segun los ejemplos de Wiki,, pero esta orientado a solo trabajr un objeto de
> un tipo a al vez,, y con un solo archivo script,,
> bien,, la pregunta es:

¿Qué páginas de wiki? tal vez esto nos ayude a entender mejor cuál
es el problema.

> Si en el Array tengo multiples Objetos de distintos tipos,, con didtisntos
> metodos,, ya hago una barrida,, a la vez,, por un metodo,, llamado Play( ),
> comun a todos los objetos,, como altero,, los datos a ese objeto propio,, si
> que se revuelvan con los datos de los otros objetos,,, en los casilleros del
> Array.

¿tienes varios scripts? ¿registras cada objeto con un nombre
diferente? ¿el método play lo has registrado como función en lua?

> Si faltan instrucciones,, please de alojar o librar diganme,,, o escribanme
> un pequeño sample,,, pues hay muy pocos de lua 5.1,, ok,,
> De antemano Gracias !!!!!!

Siento no poder echarte un cable, coméntanos más qué quieres hacer,
qué has hecho, etc..

Suerte! y un saludo,
Jose L.

Reply all
Reply to author
Forward
0 new messages