Buchstaben von der Tastatur einlesen
-
Vevusio schrieb:
mein gott wieso wollen immer alle programmier newbies so dumme buchstaben oder zahlenauswahlmenüs machen wo man nen buchstaben ohne enter eingeben kann
es geht um Benutzerfreundlichkeit.
Vevusio schrieb:
dann ist das am ende unfaktorisierter code wo man sich denkt "oh my fucking god" wenn man das liest, aber hauptsache man kann nur mit einem tastendruck die menüscheiße auswählen
warum unfaktorisiert?
Vevusio schrieb:
einen JDialog zu machen wo eine liste mit auswahlmöglichkeiten ist zu machen ist vermutlich genausoschnell wie rauszufinden wie ein getch() in java zu ersetzen wäre
einen JDialog bei Konsolenanwendungen?
-
Vevusio schrieb:
mein gott wieso wollen immer alle programmier newbies so dumme buchstaben oder zahlenauswahlmenüs machen wo man nen buchstaben ohne enter eingeben kann
dann ist das am ende unfaktorisierter code wo man sich denkt "oh my fucking god" wenn man das liest, aber hauptsache man kann nur mit einem tastendruck die menüscheiße auswählen
einen JDialog zu machen wo eine liste mit auswahlmöglichkeiten ist zu machen ist vermutlich genausoschnell wie rauszufinden wie ein getch() in java zu ersetzen wäre
So, jetzt hör mal her Junge, erstens Mal bin ich kein totaler Programmier Newbie, sondern hab grade erst mit Java begonnen zu programmieren. Vorher hatte ich Assembler bzw. auch C.
Zweitens: Auch meine Frage: Wieso unfaktorisierter Code?
Außerdem wie wärs wenn du deinen Denkbereich ein bischen erweitert würdest und auf die sehr simple Idee kämst, dass auch andere Anwendungsbereiche gebraucht werden wo man nicht mit einem JDialog weiterkommt bzw. das vollkommen schwachsinnig wäre. Ich verweise auf ein simples Spiel bei dem man seine Figur bewegt...
-
Also nach meinen Kenntnissen wüsste ich nichts womit man bei einer Konsole ohne Enter was einlesen kann.
Die einzige Möglichkeit ohne Enter etwas einzugeben ist ein Key-Listener, dafür bräuchtest aber ein Fenster.
-
Ich hab jetzt hier eine schöne Erklärung mit dem Key Listener und guten Beispielen: http://oneslime.net/java/
Man muss zwar dann wie bereits gesagt ein Fenster hernehmen, aber wenns ein Spiel wird passt das ja eh sehr gut. andere Frage: Was willst du genau für ein Spiel machen?
-
Also die Hilfe ist schon sehr aufschlußreich, aber nur weiß ich nicht genau wo ich den implements KeyListener hernehmen muss. Meiner Klassenstruktur sieht folgendermaßen aus:
class HaloZero extends Frame{ private static final long serialVersionUID = 2204623964215459052L; Image bilds,bildns,bildsz,bildsp,bildm,bildg; public HaloZero() { addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { dispose(); System.exit(0); } }); // drei Bilder werden geladen bildg = java.awt.Toolkit.getDefaultToolkit().getImage("c:/Bilder/gegner.gif"); bildsp = java.awt.Toolkit.getDefaultToolkit().getImage("c:/Bilder/spieler.gif"); bildm = java.awt.Toolkit.getDefaultToolkit().getImage("c:/Bilder/medi.gif"); } public static void main(String args[]) { HaloZero mainFrame = new HaloZero(); mainFrame.setSize(950, 550); mainFrame.setTitle("Halo Zero V.1.0"); mainFrame.setVisible(true); } public void paint(Graphics g){ //hier wird das spielfeld aufgebaut} //jetzt kommt noch nicht konvertierter C Code void step (int x, int y, int xalt,int yalt) {//und hier brauch ich dann die auswahlanweisung} }
an welcher stelle soll ich ihn nun einbinden?
-
vlt könnte deine klasse das interface implementieren?
-
1)das mit dem unfaktorisiertem code daher weil leute die sowas fragen immer erst mit programmieren anfangen und fokus auf sowas legen anstatt aufs programmieren selbst
und man sieht es eh schon gleich an diesem code ausschnitt; aber ok er will es für ein spiel haben da gehts net anders aber dazu war die formulierung der frage im ersten post nicht eindeutig genug
2)usability und benutzerfreundlichkeit erhöhen tut so eine eingabe das ohnehin nicht sondern es ist völlig egal - bei einem console-style benutzermenu
- wenn du sowas für eine gui anwendung wie ein spiel willst dann schreib das gleich rein, es macht nämlich einen deutlichen unterschied ob das über die gui geht oder über die konsole und normalerweise nimmt man konsole an
es gibt eh zu allem ein tutorial von sun
http://java.sun.com/docs/books/tutorial/uiswing/events/keylistener.htmlabgesehen davon gibts zu solchen sachen tausende von tutorials auf google
zb http://www.planetalia.com/cursos/
-
Naja eigentlich hab ich das Spiel bereits fertig mit Geräuschen und Hintergrundmusik (an einen anderen Benutzer: es wird ein Spiel das ähnlich aufgebaut ist wie Pokemon, nur dass es nicht Pokemons sind, sondern es stark an ein Pc spiel mit den Namen Halo angelehnt ist. Man läuft durch diverse Levels und kämpft gegen versch. Gegner um bessere Waffen zu bekommen. Hindurchzieht sich eine kleine Story, die teilweise ähnlichkeiten mit dem PC Spiel hat aber nicht immer.). Nur leider war mir irgendwann der Grafikstil der Dosbox zu langweilig und ich hab angefangen es in Java zu konstruieren. Das heißt ich kann den Größten Teil von meinem C Programm (welches meiner Meinung nach eine einzige Große Schleife ist) fast 1:1 in Java hernehmen. Nur ein paar Java spezifische Sachen muss ich halt noch rausfinden. z.b. 1. Bildschirm aufbauen 2. Steuerung implementieren 3. Musik abzuspielen was aber nicht das Problem ist. Falls jemand es mal testen will muss ich leider sagen, dass ich es nur ungern hergebe weil es die original Musikstücke von der Halo 2 CD sind und wenn jemand die nicht hat, wärs schlechter für mich wenn ich Musik "verschenke". Bei den Sounds bin ich mir ned sicher, ich hab sie selbst von einer demoversion von Halo aufgenommen aber kann ned sagen ob ich die dann auch frei benutzen darf.
Ja ich weiß ich hab es nicht allzu genau geschrieben weil ich mir dachte es wär egal ob man einen Buchstaben von der Tastatur einliest während man ein Konsolenprogramm hernimmt oder eine GUI.
-
eh... ich hab pokemon aufm gameboy durch und halo auf der xbox gespielt und die haben nicht sonderlich viel miteinander zu tun
das eine ist ein egoshooter und das andere ein klassisches 2d RPG mit rundenbasierenden kämpfen wie final fantasy oder lufia - aber wenn man zwischen denen ähnlichkeit sieht dann ist man jedenfalls die richtige person um spiele zu programmieren denn das braucht viel fantasie -.-
und du darfst per gesetz die sounds nicht verwenden, egal ob du das spiel besitzt, du hast nur die rechte den content im vorgesehenem rahmen zu benutzen (es spielen) und selbst wenn du dafür bezahlt hast darfst du mit dem copyright behaftetem inhalt nix anstellen (bräuchtest verwertungsrechte daüfr oder so.. is schon ne weile her dass ich das gelernt hab)
aber auf der anderen seite: es interessiert keinen schwanz um ehrlich zu sein
ich schreib auch ab und zu wenn ich zeit hab an einem 3d grafik 2d jump n run wo ich WoW models verwende und grafiken aus nintendo jump n runs, waynerealistisch gesehen ist das schlimmste was passieren kann dass wenn du ne seite hast irgendwann die spielefirma anklopft und dich auffordert ihre contents rauszunehmen und das wars
-
Jetzt bleib mal locker. Ich hab keine Seite wo ich meine Spiele online stell und außerdem haben Pokemon und Halo wirklich nix damit zu tun. es ist aber die Spielmechanik von Pokemon und die Story, Charaktere, Waffen usw. von Halo.
Wie du bereits richtig erkannt hast ist das Spiel 2D und besitzt rundenbasierte Kämpfe. Folgerung es hat etwas mit Pokemon zu tun. man hat zwar keine kleinen viecher die man gegeneinander antreten lässt aber man kämpft selbst gegen andere wesen, z.b. Grunts, Jäger usw. also zweite Folgerung es beinhaltet Halo Elemente. Zufrieden? Ach ja, du meinst es interessiert keinen Schwanz? Ich hab doch nur geantwortet weil ein anderen Benutzer es wissen wollte. Ich sag ja nicht, dass das Spiel gut ist, aber ein paar meiner Freunde fanden an einer ersten Version gefallen. ( Da war fast alles fertig, nur Story, Sound und Musik fehlten noch.) Wer ist wayne? vielleicht sogar John, Wayne?