|
Acabo de estar probando un poco el sistema Lua para scripting, y por ahora me esta gustando mucho lo que veo. El proyecto no tiene un vcproj de visual studio. Lo que hice fue simplemente meter todos los .c en una ibreria estatica (menos el lua.c y el luac.c), y todo compilo a la primera. El lua.c y el luac.c son para generar un interprete y un compilador respectivamente (si, lua se compila!). ASi que en un momento tienes el lua linkado a tu aplicacion. Lua tiene una maquina virtual que ejecuta el codigo, mantiene estado de variables, etc. Una vez creada la maquina, puedes ejecutar scripts (tanto desde una cadena como desde un fichero), Lua va ejecutando el codigo, llamando a las funciones, etc. La forma de modificar tu aplicacion es creando funciones propias, como "crear_bicho", o "cambiar_puntuacion" Como se extiende? pues es muy facil. Haces una funcion, y usas la llamada 'lua_register' para asociar una funcion con una cadena. Cuando lua encuentra esa cadena, llama a tu funcion. Para leer los parametros, pues lua tiene una pila propia de datos. Puedes preguntar cuantos datos hay en la pila y pedirlos. O pedir directamente un parametro concreto (por ejemplo, el segundo, etc). Tambien podemos hacer un push para devolver valores a lua. Puedes reescribir cualquier cosa. El print, el io.write, el math.cos... cualquier cosa. Eso esta muy guay! La primera funcion que uno se carga es el print. Al registrar tu propio print, lua llama a tu funcion cada vez que encuentra un print(valor) Lua es muy hack.. puedes hacer de todo, meter mano en todo, etc. Pero eso es para mi una caracteristica, no una limitacion, ya que puedes controlar el script como quieras. Sobre el lenguaje en si, tengo que aprender mas, pero lo que he visto esta bien. Lo que mas me interesa es que tiene diccionarios, como python, que es muy importante para un scripting sencillo. Veremos que sale de ahi. Por ahora me parecio muy sencillo... en un par de horas estuve ya metiendo scripts y testeando de todo. Unos enlaces interesantes:
|