Konsolenspiel

Jose05

Aktives Mitglied
Hallo,
ich möchte das Chrome-offline-Spiel programmieren, dass später in der Konsole laufen soll.
1644509010553.png

Meine Idee ist, dass ich die Welt und den Vogel ausgebe und nebenbei immer abfrage, ob die Entertaste gedrückt wird. Die Entertaste soll dann für hochspringen von den Vogel sein. Wäre das realisierbar?
Danke schonmal!!
 

Jw456

Top Contributor
Warum sollte soetwas nicht realisierbar sein.

Enter Taste immer abfragen. Dafür gibt es in Java Listener / Eventhandler. Ein Polling wie du es scheinbar vor hast sollte man nicht machen.
 

Jw456

Top Contributor
Kann man einen Java Listener / Eventhandler auch ohne GUI (also nur Konsole) nutzen?
Ja

Nur in der Konsole wird das nicht laufen. Die ist ja Text orientiert Zeilen.
Etwas Grafik wirst du schon brauchen.

Das auf der Text Konsole zu machen ist meiner Meinung nicht sinnvoll.

Es soll sich doch auch die Landschaft im Hintergrund bewegen oder nicht.

Ein horizontales scrolling im Textmode ein Krampf.
 
Zuletzt bearbeitet:

Neumi5694

Top Contributor
So was wie ein Textfenster in der Konsole kannst du meines Wissens in Java nicht ansprechen, die ist ein reiner Stream. In anderen Sprachen mag's funktionieren, in Pascal hab ich so was früher mal gemacht und in C, der MidnightCommander läuft auch in einer Shell als 'grafische' UI, aber Java ist meines Wissens nach nicht in der Lage, Zeichen an spezifischen Stellen der Konsole anzuzeigen.

Erstelle ein Swing-Fenster mit einer TextArea, da geht das, da musst du dann halt tricksen und das Document der Area entsprechend bearbeiten.
 

Robert Zenz

Top Contributor
So was wie ein Textfenster in der Konsole kannst du meines Wissens in Java nicht ansprechen, die ist ein reiner Stream.
Es geht schon, du musst halt die entsprechenden Steuerbefehle/Steuerzeichen in den Stream schreiben, so machen es auch alle anderen. Das wird aber sehr schnell sehr anstrengend und ist nicht wirklich gut portierbar (ANSI-Terminal, Microsoft Windows, Cygwin und so weiter). Lanterna macht dies zum Beispiel.

ich möchte das Chrome-offline-Spiel programmieren, dass später in der Konsole laufen soll.

Eventuell waere sogar Lanterna eine moegliche Loesung wenn man es *wirklich* am Terminal machen will, weil die Stellen auch Grafik-Klassen um die Anzeige im Terminal zu manipulieren. Aber grundsaetzlich wuerde ich eher zu Swing tendieren, entweder dort mit einer TextArea (was aber sehr schnell sehr anstrengend werden wird) oder mit einem eigenen Steuerelement in welchem man einfach selbst zeichnet.
 

Neumi5694

Top Contributor
Es geht schon, du musst halt die entsprechenden Steuerbefehle/Steuerzeichen in den Stream schreiben, so machen es auch alle anderen. Das wird aber sehr schnell sehr anstrengend und ist nicht wirklich gut portierbar (ANSI-Terminal, Microsoft Windows, Cygwin und so weiter). Lanterna macht dies zum Beispiel.
Oy vey, das klingt nach einer rekatlen Augenoperation. Davon lass ich lieber die Finger :)
Damals war das DOS-Fenster noch beschränkt, ohne Scrollmöglichkeit. Da konnte man die Position am Bildschirm wählen und dort was reinschreiben, ohne Steuerzeichen. Für die Schule hab ich so damals in Turbo-Pascal (könnte auch Turbo-C gewesen sein, aber ich glaube, es war Pascal) ein Chat-Programm über die serielle Schnittstelle geschrieben, ist schon Jahrzehnte her.

Der Linux Midnight Commander (keine Ahnung, womit der geschrieben ist) macht das übrigens nicht so, der legt eine Oberfläche ÜBER über die Konsole, diese bleibt im Hintergrund erhalten.
Wenn man während der Ausführung des MC etwas startet, wird auf der Konsole gelogt, danach wieder der MC angezeigt. Beendet man ihn, ist die Konsole komplett erhalten.
Auch im DOS Norton Commander früher konnte man die beiden Dateilisten einzeln ausblenden und stattdessen die dahinter liegende Konsole anzeigen lassen.
 

Robert Zenz

Top Contributor
Oy vey, das klingt nach einer rekatlen Augenoperation. Davon lass ich lieber die Finger :)
Ohne Lib geht's halt nicht anders...aber ja, etwas Augenkrebs ist bei der Sache immer inkludiert.
Damals war das DOS-Fenster noch beschränkt, ohne Scrollmöglichkeit. Da konnte man die Position am Bildschirm wählen und dort was reinschreiben, ohne Steuerzeichen. Für die Schule hab ich so damals in Turbo-Pascal (könnte auch Turbo-C gewesen sein, aber ich glaube, es war Pascal) ein Chat-Programm über die serielle Schnittstelle geschrieben, ist schon Jahrzehnte her.
Ja, aber das war halt DOS, kein Terminal-Fenster. ;)
Der Linux Midnight Commander (keine Ahnung, womit der geschrieben ist) macht das übrigens nicht so, der legt eine Oberfläche ÜBER über die Konsole, diese bleibt im Hintergrund erhalten.
Wenn man während der Ausführung des MC etwas startet, wird auf der Konsole gelogt, danach wieder der MC angezeigt. Beendet man ihn, ist die Konsole komplett erhalten.
Auch im DOS Norton Commander früher konnte man die beiden Dateilisten einzeln ausblenden und stattdessen die dahinter liegende Konsole anzeigen lassen.
Das ist, soweit ich weisz, genau das gleiche Prinzip. Also, kann sein dass ich da jetzt Bloedsinn rede, aber was ich mich erinnern funktioniert das genau gleich. Du kannst das Terminal mit einem Steuerzeichen in einen anderen Modus setzen wo du dann halt einfach beliebig "zeichnen" kannst, und wenn du aus dem Modus wieder hinaus springst bist du wieder im Scrollbuffer. Meines Wissens nach funktioniert so alles was nicht direkt irgendwie ueber eine Lib Fenster oeffnet oder anspricht. Was auch erklaert wieso jeder eine Bibliothek wie ncurses verwenden will, weil sich jeder als erstes eine solche Bibliothek schreiben wuerde um nicht wahnsinnig zu werden.
 

Neue Themen


Oben