Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Game Development mit LUA Integration und Kommunikation von LUA mit C++ Referat von Paul van Hemmen Seminar: Reusable Content in 3D und Simulationssystemen.

Ähnliche Präsentationen


Präsentation zum Thema: "Game Development mit LUA Integration und Kommunikation von LUA mit C++ Referat von Paul van Hemmen Seminar: Reusable Content in 3D und Simulationssystemen."—  Präsentation transkript:

1 Game Development mit LUA Integration und Kommunikation von LUA mit C++ Referat von Paul van Hemmen Seminar: Reusable Content in 3D und Simulationssystemen SoSe 2011 Dozent: Prof.Dr. M.Thaller Institut für Historisch-kulturwissenschaftliche Informationsverarbeitung an der Universität zu Köln

2 I. Interaktion zwischen LUA und C++

3 Interaktion zwischen C++ und LUA

4 Bidirektionale Kommunikation LUA C++: Per LUA können in C++ geschriebene Funktionen aufgerufen werden. Diese nennt man LuaGlue Funktionen C++ LUA: Über die LUA API kann der Programmkern auch in LUA definierte Funktionen ansteuern

5 I.1 LUA C++ (LuaGlue) Definition der Funktion als externe C Funktion im C++ Code

6 I.1 LUA C++ (LuaGlue) Anlegen eines Arrays, welche alle LuaGlue Funktionen + Bezeichner beinhaltet:

7 I.1 LUA C++ (LuaGlue) Struktur lua_State repräsentiert das LUA Environment: Einfügen aller LuaGlue Funktionen in die Struktur per for- Schleife:

8 I.1 LUA C++ (LuaGlue) Alle so definierten und eingebundenen LuaGlue Funktionen können nun in LUA aufgerufen werden:

9 I.2 C++ LUA Flexibles, eventbasiertes System zur Kommunikation des Programmkerns mit LUA. Verarbeitet werden: Tastatur- und Mauseingaben Spielevents (Trigger) GUI Events (Buttons) Timer Events

10 I.2 C++ LUA Folgende in LUA definierte Funktion soll später vom C++ Programmkern aufgerufen werden:

11 I.2 C++ LUA Der C++ Code nimmt den Namen der Funktion entgegen und stellt diese dann dem Programm zur Verfügung:

12 I.2 C++ LUA Die Funktion kann um beliebige Parameter erweitert werden:

13 I.2 C++ LUA Der entsprechende C++ Code nach Erweiterung:

14 II. Integration von LUA in das C++ Environment

15 Starten und Beenden von LUA Kernstück der Integration ist die bereits angesprochene Struktur lua_State Ein Zeiger auf sie wird allen Initialisierungsfunktionen als Parameter übergeben:

16 Starten und Beenden von LUA Entsprechend wird die Engine wieder heruntergefahren

17 Starten und Beenden von LUA Entsprechend wird die Engine wieder heruntergefahren

18 Klasse cLua Einführung der Klasse cLua, um das LUA Environment vom Rest der Anwendung zu trennen cLua kapselt die LUA Engine ab und bietet eine zentrale Schnittstelle auf die gesamte API von LUA

19 Klasse cLua

20 III. Ein C++ Basisprojekt mit LUA

21 Eigenschaften des Basisprojekts Einbindung in die Windows Nachrichtenschleife Erstellen des Grundgerüsts für das Hauptprogramm Erstellen der LUA Console Kommunikation mit der Windows Registry Einbindung von DirectX, LUA Environment und GUIManager

22 Struktur des Basisprojekts

23 Die Klasse CBase Bereitstellung aller grundlegenden Funktionen in Die Methode erledigt: Erstellung eines neuen DirectX Kontext Festsetzen der DirectX Grafik Parameter Erstellung eines neuen Settings Interface Registrierung sämtlicher LuaGlue Funktionen Erstellen der LUA Console Starten des LuaGUI Systems

24 Das LUA GUI System Ist das Herz des Game Systems von LUA Start des Systems durch Erstellen eines CGuiManager Objekts Beim Aufruf wird auch das Startskript StartGUI.lua aufgerufen

25 Das Startskript StartGUI.lua Wird beim Start des GUI Managers ausgeführt Sollte Initialisierungen und benötigte Basisfunktionen beinhalten Ruft die LuaGlue Funktion RunGUI() auf und betritt damit die LUA Eventschleife

26 Bsp.: Das Startskript StartGUI.lua

27 Bsp.: Aufruf von Chapter8.lua

28 Fragen & Diskussion Vielen Dank für Ihre Aufmerksamkeit!


Herunterladen ppt "Game Development mit LUA Integration und Kommunikation von LUA mit C++ Referat von Paul van Hemmen Seminar: Reusable Content in 3D und Simulationssystemen."

Ähnliche Präsentationen


Google-Anzeigen