Forum: PC-Programmierung Wie funktioniert Spiele-Consoleneingabe bzw. CLI?


von X. H. (shadow0815)


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?

von Thomas (Gast)


Lesenswert?

Hinter einem CLI stehen immer Tokenizer, Parser und Interpreter. Das
wären so die Schlagworte nach denen du dich mal umhören kannst.

von inoffizieller WM-Rahul (Gast)


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

von X. H. (shadow0815)


Lesenswert?

Danke für die Hilfen.
So verstehe ich wie eine CLI funktioniert und könnte in nem Controller 
mal ne CLI für die serielle Schnittstelle aufdrücken ;)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.