Minispiel Snake

Status
Nicht offen für weitere Antworten.

corrosive

Mitglied
Hallo,
ich bin neu in dem Forum, nicht zuletzt, weil ich noch keine Antwort auf mein Problem gefunden habe.
Ich werde in ein paar Tagen mein Studium beginnen und mache zur Zeit eigene Übungen mit Java und bin bisher nur mit den Java-Grundlagen vertraut.

Ich möchte zunächst eine einfache Version des Spieles "Snake" erstellen, indem ich ein Spielfeld über ein 2dimensionelles Array erstelle und dieses dann in einem bestimmten Interval auf der Konsole erneut ausgeben zu lassen.
Meine 1. Problem ( ich gehe schwer davon aus, das sehr bald neue Folgen werden ^^ ) ist:
ich weiß nicht wie mit einer Tastatureingabe umgehen soll. Bisher habe ich über eine Scanner-Klasse Strings vom Benutzer eingelesen, dies ist aber ungeeignet, da:
  • ich lieber mit den Pfeiltasten der Tastatur arbeiten möchte und er die ja zumindest mit einer Methode wie nextLine() gar nicht erfasst ( andere Methode? )
  • und ich natürlich auch nicht mit der Entertaste bestätigen möchte

Gibt es für sowas eine geeignete Klasse?
Die Idee ist einfach, dass bei dem Betätigen z.B. der rechten Pfeiltaste die xPos der Schlange in dem Array um einen erhöht wird, was dann beim aktualisieren angezeigt würde.

lg,
max
 

ARadauer

Top Contributor
Die Konsole ist für sowas ziehmlich ungeeignet... wärs nicht besser das einfach auf ein Frame zu zeichnen?
 

Marco13

Top Contributor
Es gibt in Java keine Möglichkeit, direkt auf Tastendrücke zu lauschen (OHNE dass man Enter drücken muss). Es gibt Workarounds, die auf native Bibliotheken zurückgreifen (JCurses kann sowas glaub' ich). Die Abhilfe wäre ein GUI mit Swing ... ist auch nicht sooo schwer, aber dafür viel hübscher.
 

corrosive

Mitglied
oh super schnelle antworten.
hab ich mir schon gedacht, das man da in irgendeiner form ein interface benutzen sollte. dann werd ich mich da vorher wohl noch weiter informieren müssen.
danke für die Antworten

lg,
max
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben