2011-07-08 11 views
5

Busqué mucho en Google ahora, pero todos los que encuentro son ejemplos de "Hello World" para Lua con C++.Lua, C++, alguna buena introducción que vaya más allá de lua_open()?

Situación: Juego, gran juego. Tiene una consola en el juego, actualmente codificada en C++ (orientada a objetos y todo), tiene una gran cantidad de bloques if-else-if-else ... para verificar los comandos que el usuario ingresó en la consola. Cada comando puede cambiar miembros de otras clases del juego (como el comando "velocidad 5" cambia la variable double speed en class Car llamando al Car::setSpeed(5)) y también devuelve a la consola el resultado. También hay comandos que hacen más "detrás de escena" que solo cambiar una variable, esto también lo debe hacer Lua y solo el resultado final pasó de nuevo al código C++ (salida de consola + variables cambiadas en la clase correcta).

¿Dónde/cómo/con qué debo empezar a convertir el código detrás de esta consola de funciones de comandos a Lua? De esta manera: el usuario ingresa "velocidad 5" en la consola, luego Lua llama al Car::setSpeed(5) y luego Lua informa a la consola C++. En lugar de codificar el código detrás de los comandos, deberían escribirse en Lua, pero el resto del juego debería permanecer en C++ (como mis clases y sus miembros y el marco de la consola).

¿Algún buen tutorial? ¿Alguna pista por dónde empezar? Algunas experiencias para compartir?

Gracias de antemano

Respuesta

6

Obtenga una copia de Programming in Lua si no lo ha hecho ya. La sección que describe la interoperabilidad con C (y, por lo tanto, C++) es de casi 100 páginas, y mucho más que un "mundo de hola".

No hay información específica de enlace C++ en el libro, pero si su compilador C++ tiene alguna capacidad RTTI, puede ser útil. Así es como integramos lua con C++ Builder

+1

También puede leer [la primera edición] (http://www.lua.org/pil/) en línea. –

0

no le puede dar una gran cantidad de consejos que sólo se utiliza lua para jugar con secuencias de comandos.
Pero encontré que luabind es mucho más útil en C++ como lua simple. Tal vez los tutoriales allí también puedan ayudarte.

Cuestiones relacionadas