Wie funktioniert Spiele-Consoleneingabe bzw. CLI?

#422374
Lesenswert?

Spiele-Console - Funktion?

Hi. Es gibt ja Egoshooter, wo man in der Console
Befehle wie "renderer.drafps=1" eingeben kann.
Wie funktioniert die Console?

Ich meine, bei Eingabe von "renderer.drafps=1" und
abschließendem Enter, wird da die gesamte Zeile
als String aufgefasst und dann analysiert und in Teilstrings zerlegt?
In einen Teilstring würde ich das dann zerlegen in dem ich zuerst nach
dem Punkt suche. Aber es gibt ja leider
sicherlich auch Befehle ohne Punkt. Also macht eine solche Analyste
wieder keinen Sinn...
Hätte ich nun Teilstrings, wie würde ich nun die dem String zugehörige
Struktur/Klasse ansprechen?
Oder wird durch die Eingabe von "renderer.drafps=1" direkt
eine Struktur/Klasse renderer manipuliert mit dem
Attribit drafps ???
Je leger ich drüber nachdenke, desto komplexer scheint eine simpel
anscheinende Konsole zu sein.


Oder wie funktioniert eine CLI wie die Command bei Windows/Linux?

So nach dem Motto:

Wenn Aktivität festgestellt, lese string, analysiere diesen und führe
aus?
Gast #422376
Lesenswert?

>Oder wird durch die Eingabe von "renderer.drafps=1" direkt
>eine Struktur/Klasse renderer manipuliert mit dem
>Attribit drafps ???

Das passiert bestimmt nicht.
Es werden die Eingaben mit "Wörtern" (Zeichenfolgen/Strings)
vergleichen, die das Programm kennt.
Das kann man buchstabenweise machen oder den gesamten String erst mal
in mehrere einzelne aufteilen.
Enden tut das dann in einerm switch-case- oder if-else-Grab...
Dazu "normiert man die Engabe auch noch (z.B. komplett in
Kleinbuchstaben wandeln).
Dann sucht man im String nach Trennzeichen (hier: ".")
den vorderen Teil analysiert man dann daraufhin, ob es sich dabei um
ein bekanntes Wort handelt. Ist das der Fall, wird der String weiter
zerteilt bis man beim "=" ankommt.
Die folgenden Zeichen sind dann ja Parameter, die der entsprechenden
Funktion übergeben werden...

Sowas nennt man "Parser".
http://de.wikipedia.org/wiki/Parser

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren