Raw-Key-Event

Status
Nicht offen für weitere Antworten.

Pongo

Mitglied
Hallo
In meinem Kurs entwickeln wir gerade ein Pong. Die ersten erfolgreichen Tests gab es nach wenigen Stunden.
Das Pong müsst ihr euch so vorstellen, dass es eine Multiuserapplikation ist und wir einen „Server“ haben, der das Spiel zur Verfügung stellt.
Jetzt ruckelt das Spiel aber noch sehr wegen unseren Actions! Diese werden im Moment noch vom Betriebsystem verwendet!
Gibt es eine Möglichkeit direkt auf die Tastatur zu greifen ohne, dass das Betriebsystem an Java den Befehl mit Verzögerung sendet?
Die Verzögerung ereignet sich so, dass der KeyListener bei DownEvents des Raquets auch die Upevent abfängt. Das heisst das es eigentlich immer wieder den Knopf drückt!
Vielleicht weiss einer von euch wie man ein Raw-Event implementiert?

Danke pongo
 

madboy

Top Contributor
Wie meinst du das mit der Verzögerung? Ich kann mir nämlich nicht vorstellen, dass das Betriebssystem irgendwie merklich was verzögert.
Schreib doch bitte mal, was genau du willst und poste den Code, den du verwendest (erst mal nur den Teil mit dem Listener).
 

Pongo

Mitglied
Hallo
Nein das Betriebsystem verzögert im eigentlichen Sinne nicht, aber wenn man auf einem der Arrows lange drauf bleibt schiebt das System ein keyReleased zwischen den keyPressed! Somit habe ich keinen direkten Fluss meines Raquets.

Hier ein Beispiel dafür wie wir es gemacht haben:

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class TestKey extends JPanel implements KeyListener{

	public TestKey(JFrame jf){
		jf.addKeyListener(this); }
	
	public static void main(String[] args) {
		JFrame jf = new JFrame();
		jf.add(new TestKey(jf));
		jf.setSize(200, 200);
		jf.setVisible(true); 	}

	public void keyPressed(KeyEvent e) {
		System.out.println("Press " + System.currentTimeMillis()); }

	public void keyReleased(KeyEvent e) {
		System.out.println("Released");	}

	public void keyTyped(KeyEvent e) {}
}

Output:
Press 1196170967330
Press 1196170967820
Press 1196170967860
Press 1196170967890
Press 1196170967921
Released

Was uns eigentlich stört ist, dass es mehrere „Press“ gibt wenn man ein Key gedrückt hat. Ausserdem ist der Zeitabstand vom ersten „Press“ zu Zweiten zu gross.
Das ist so viel mir ist Betriebssystem abhängig!

Hoffe ihr wisst jetzt genug und könnt mir helfen wie ich nur ein Press bekomme damit man so quasi auf dem Key bleiben kann!?
pongo
 

The_S

Top Contributor
Also dein Problem kann ich nicht nachvollziehen. Wenn ich auf einer Taste bleibe, dann kommt auch nur "Press", solang ich sie nicht loslasse.

Der Zeitabstand zwischen den einzelnen "Press" ist damit begründet, dass du sonst für einen Anschlag eine Taste nur total leicht und minimal berühren dürftest. Diese Verhalten ist überall so und völlig normal. Außerdem kostet ein System.out.println auch Zeit.

Ein möglicher Workaround wäre das Setzen eines booleans auf true, wenn eine Taste gedrückt, bzw. false, wenn die Taste wieder losgelassen wurde. In einem extra-Thread überprüfst du dann in deinem eigenen Intervall, ob dieser boolean true ist, und führst dann den entsprechenden Code aus.
 

Pongo

Mitglied
Mhh, dass mit dem boolean wär noch eine Idee um schnellere Reaktion umzusetzen!
Besten Dank, wir werden das mal ausprobiern und weiterhin herum experimentieren!

Pongo
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Fiedelbambu fxml onAction event Java Basics - Anfänger-Themen 7
T FXMl Event has not a Slot Java Basics - Anfänger-Themen 1
E Methoden Action Event wird nicht vollständig ausgeführt Java Basics - Anfänger-Themen 3
Tommy135 Event erstellen Java Basics - Anfänger-Themen 7
CptK Methoden Event bei gedrückter Maustaste immer wieder ausführen Java Basics - Anfänger-Themen 1
CptK Klassen Event bei gedrückter Maus immer wieder mit Pause ausführen Java Basics - Anfänger-Themen 2
topi WindowAdapter / Listener / Event Java Basics - Anfänger-Themen 4
L Event schmeißen Java Basics - Anfänger-Themen 1
F In Eclipse Haltepunkt bei Event setzen? Java Basics - Anfänger-Themen 1
T Übungsaufgabe Event Handling Java Basics - Anfänger-Themen 0
M Action Event auf Textfield legen Java Basics - Anfänger-Themen 18
V Button/Event wird nicht ausgeführt, was tun? Java Basics - Anfänger-Themen 2
J Keyboard Event auch ohne Fokus mitbekommen Java Basics - Anfänger-Themen 2
D Java Eclipse cannot be cast to java.awt.event.ItemListener Java Basics - Anfänger-Themen 3
IngoF Welches Event kommt wann? Java Basics - Anfänger-Themen 8
A Key Event - Abfrage von 2 gedrückten Tasten Java Basics - Anfänger-Themen 6
E Event gesucht Java Basics - Anfänger-Themen 1
G Button Event Java Basics - Anfänger-Themen 6
Thallius Hidden Feature über Key Event starten Java Basics - Anfänger-Themen 4
A Labels Inner JButton Event Erstellbar? Java Basics - Anfänger-Themen 3
F Erste Schritte Aktuelles Fenster durch Event schließen Java Basics - Anfänger-Themen 3
D Button action Event einblenden/ausblenden Java Basics - Anfänger-Themen 6
U Threadsafe Event-Handling Java Basics - Anfänger-Themen 2
C Klassen NullPointerException beim Event Handling in GUI Java Basics - Anfänger-Themen 8
P ActionListener Action Event Java Basics - Anfänger-Themen 5
J Erste Schritte import awt.* ;awt.event.*; Java Basics - Anfänger-Themen 3
T event und while-schleife Java Basics - Anfänger-Themen 26
L Null Pointer Exception bei Focus Event bei einem JTextField Java Basics - Anfänger-Themen 2
M Während event einen anderen event ausführen?? Java Basics - Anfänger-Themen 3
S Event aus anderer Klasse als Auslöser Java Basics - Anfänger-Themen 5
M Event erstellen Java Basics - Anfänger-Themen 6
B OOP Eigener Event-Listener erstellen Java Basics - Anfänger-Themen 4
D Eigenes Event beim TimeOut Java Basics - Anfänger-Themen 2
D Auf Event warten Java Basics - Anfänger-Themen 4
I AWS Event Notification Service Sample ausführen... Java Basics - Anfänger-Themen 7
M JList Event Java Basics - Anfänger-Themen 5
Houly while Schleife im ActionPerformed Event Java Basics - Anfänger-Themen 8
R eigenen Event schreiben Java Basics - Anfänger-Themen 16
S Kein Event bei Click auf JComboBox Java Basics - Anfänger-Themen 4
N paint methode statt Event-Handling-Methode Java Basics - Anfänger-Themen 3
Q Eigenes Event feuern Java Basics - Anfänger-Themen 5
H2SO3- dreieck, bild --> maus klick event. Wie gehts? Java Basics - Anfänger-Themen 10
R Event in eigener Klasse implementieren ? Java Basics - Anfänger-Themen 8
B Applet: Event-Handling-Methode in start- bzw. paint-Methode Java Basics - Anfänger-Themen 7
D Window resize Event ? Java Basics - Anfänger-Themen 5
D Bei Event soll Instanz sich selbst löschen Java Basics - Anfänger-Themen 4
D Event mit n-Button8s) von einem Panel Java Basics - Anfänger-Themen 9
GilbertGrape Eigenes Event? Java Basics - Anfänger-Themen 2
A Synchronisierung oder gibt es das onChange event? Java Basics - Anfänger-Themen 4
J Automatisch Button drücken/Event ausführen? Java Basics - Anfänger-Themen 6
G Button Action Event starten Java Basics - Anfänger-Themen 4
G Methode nicht im Event-Dispatcher-Thread starten? Java Basics - Anfänger-Themen 2
F Doppelklick-Event auf JTree Java Basics - Anfänger-Themen 5
A Wo/Wie Event Listener Java Basics - Anfänger-Themen 3
N Event auf JTabbedPane abfragen ? Java Basics - Anfänger-Themen 8
G Event Handler Java Basics - Anfänger-Themen 7
T button event Java Basics - Anfänger-Themen 3
Q ActionListener event bei JPanels Java Basics - Anfänger-Themen 5
J Event-Handling geht nicht Java Basics - Anfänger-Themen 6
G Button event problem Java Basics - Anfänger-Themen 24
B Eigenes Event schreiben Java Basics - Anfänger-Themen 7
D MouseLister und Identifikation des Event - Buttons Java Basics - Anfänger-Themen 4
G start-oder paint-Methode anstatt Event-Handling-Methode? Java Basics - Anfänger-Themen 3
T java.awt.event.WindowAdapter Java Basics - Anfänger-Themen 2
B Event-Actionlistener(Def) Java Basics - Anfänger-Themen 6
G GUI Event Handling Java Basics - Anfänger-Themen 5
M Event auslösen (unsinnig gestellt - ignorieren) Java Basics - Anfänger-Themen 4
M [SOLVED]Swing Event Management Java Basics - Anfänger-Themen 7
N Runtime.exec und Key event Java Basics - Anfänger-Themen 2
C Klasse muss auf Event in einer anderen Klasse reagieren Java Basics - Anfänger-Themen 7
G JTable - Event - MVC Java Basics - Anfänger-Themen 10
J Event-Hilfe Java Basics - Anfänger-Themen 4
T Event zu bestimmter Uhrzeit auslösen ? Java Basics - Anfänger-Themen 5
S MausKlickZähler - Event Problem Java Basics - Anfänger-Themen 2
M Kommunikation zwischen GUI und Event -Klasse Java Basics - Anfänger-Themen 3
C mouseDown (Event e, int x, int y) rechts oder linksklick ? Java Basics - Anfänger-Themen 10
D if (event.target instanceof TextField) Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben