Hi,
ich möchte mich langsam mal an Lua heranwagen, da ich für mein Projekt eine Scriptsprache benötige.
Bevor ich die eigentliche Frage stelle, möchte ich mal die Ausgangssituation schildern:
Ich habe ein Objekt meiner Klasse "Game", welches die aktuell laufende Spielinstanz repräsentiert. Darin gibt es dann in erster Linie die Memberfunktionen Init(), Quit() und Run(). Run() beinhaltet eine Schleife, welche die eigentliche Spielschleife darstellt.
Außerdem verwaltet die Game-Klasse alles mögliche, wie z.B. Spieler, Gegner, andere Objekte, Tastatur- und Mauseingaben etc. - eigentlich alles, was für das Spiel relevant ist.
Der Spielablauf soll jetzt allerdings nicht nur durch Zufall bestimmt sein, sondern, ihr ahnt es schon, durch ein Script. Ich möchte also eine Script-Datei haben, die auch hinterher noch leicht zu modifizieren ist, welche bestimmt, wann z.B. neue Gegner auftauchen, wann sie ihr verhalten wechseln etc. So soll es z.B. möglich sein, dass wenn der Spieler Objekt A zerstört hat, dass dann 5 neue Gegner erstellt werden (nur ein Beispiel). Dazu hat ja die Game-Klasse Zugriff auf alle Spieler, Gegner etc. Nur muss jetzt in der Run()-Funktion eben noch die Script-Datei abgearbeitet werden, udn der Scriptsprache müssen einige Funktionen zur Verfügung gestellt werden (z.B. AddEnemy() um einen Gegner zu erstellen, DestroyEnemy() um einen Gegner zu zerstören etc.)
Ich dachte natürlich zuerst an LUA und habe erfreut festgestellt, dass es mit z.B. Luabind auch gute C++-Unterstützung gibt.
Aber leider scheint micht die
Doku etwas zu verwirren.
Zum Beispiel verstehe ich nicht, was diese Module sollen:
|
C-/C++-Quelltext
|
1
2
3
4
|
module(L)
[
def("greet", &greet)
];
|
Allgemein wären ein paar Tipps (vielleicht sogar Code-Beispiel) hilfreich, wie ich Lua bzw. Luabind für meine Zwecke optimal nutzen könnte. Also wie kann ich einen bestimmten Teil des Scripts (die "Hauptschleife" im Script sozusagen) bei jedem Durchlaf der wirklichen Spielschleife ausführen, Memberfunktionen (z.B. AddPlayer() oder sowas) von meiner Game-Klasse als normale Funktionen in Lua zur Verfügung stellen...?
Ich würde mich über Denkansätze, Codeeispiele, Tipps, Links und weitere Hilfe zum Einstieg in lua und Luabind wirklich freuen!
FBI