Ich mache ein Point-and-Click-Abenteuerspiel und versuche derzeit herauszufinden, wie ein Befehlssystem am besten implementiert werden kann.
Angenommen, eine Benutzeroberfläche im Monkey Island- oder Maniac Mansion-Stil mit einer Palette von Verben und Objekten in der Szene und im Inventar. Wenn Sie darauf klicken, bilden Sie einen Satz, der ausgeführt werden soll.
Sie können beispielsweise auf look at
einen Baum klicken , um "Baum betrachten" zu erhalten, oder auf einen Apfel klicken, und dann give
und dann auf ein Mädchen, um "Apfel an Mädchen geben" zu erhalten.
Es gibt drei mögliche Formen eines Satzes:
verb
, zum Beispiel "speichern"verb noun
, zum Beispiel "Apfel aufheben", "Tintenfisch anschauen"verb noun noun
, zum Beispiel "Gurke dem tollwütigen Hund geben", "Brechstange mit Einmachglas verwenden"
In verschiedenen Situationen möchte ich, dass die auszuführende Aktion von verschiedenen Objekten definiert wird.
Zum Beispiel könnte für das give
Verb eine Standardaktion definiert sein, die den Charakter dazu bringt, etwas wie "Ich würde es vorziehen, daran festzuhalten" zu sagen, oder der tollwütige Hund könnte eine Aktion definieren, bei der er alles frisst, was Sie versuchen, ihm zu geben .
Wenn die Benutzeroberfläche wie Maniac Mansion funktionieren soll, erstellen Sie den Satz und weisen ihn an, ihn auszuführen (in Maniac Mansion entweder durch Klicken auf den Satz oder erneut durch Klicken auf das zuletzt angeklickte Element).
Wenn es wie Monkey Island funktionieren soll, wird der Satz ausgeführt, sobald er vollständig ist. Dies stellt ein Problem für Verben dar, für use
die manchmal ein Substantiv und manchmal zwei verwendet werden.
Wie würden Sie ein System implementieren, das dies handhabt?
look
ist ein Verb mit einem Substantiv usw.