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?
Hinter einem CLI stehen immer Tokenizer, Parser und Interpreter. Das wären so die Schlagworte nach denen du dich mal umhören kannst.
>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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.