Im Spiel wie auf Pfeiltasten reagieren?

codehacker

Neues Mitglied
Hallo. Eventuell kann mir jemand bei meinem Problem helfen.
Seit Tagen versuche ich schon, in folgendes Spiel ein "auf Pfeiltasten/Return reagieren" einzubauen. Doch irgendwie weiß ich nicht, welcher Befehl dafür zuständig ist, und wo dieser eingetragen werden muss.
Mein Ziel ist es, dass, wenn ich z.B. auf die Pfeiltaste unten drücke, der Punkt nach unten wandert. Wenn ich nach links drücke, soll der Punkt 1 nach links wandern. Normal müssten alle Punkte, wo ich schon war, rot angemalt sein. Startpunkt ist die Mitte. Aber wie mache ich das?
Hier der Code:
Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.Color;
import java.io.*;

public class woWarIchSchon extends JFrame
{
  // Fensterklasse
  public woWarIchSchon()
  {
    setSize(200,200);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setVisible(true);
  }

  public static void main(String[] args)
  {
    // Fensterobjekt
    new woWarIchSchon();
  }

  public void paint(Graphics woWarIchSchon)
  {
    // Array für das Gitter wird erstellt (quadratisch)
    int [] Gitter = new int[200*200];

    // Startfeld ist das Feld in der Mitte.
    int aktivX = 100;
    int aktivY = 100;

    // Das Feld, wo er draufsteht, wird als abgetreten markiert
    Gitter[aktivY*200+aktivX] = 1;
    
    int gewonnen = 0;
    int i;
    int j;

    // Schleife
    do
    {
      woWarIchSchon.setColor(Color.white);
      woWarIchSchon.fillRect(0,0,199,199);

      // schon abgetretene Pfade werden blau gezeichnet
      for(i=0;i<=199;i++)
      {
        for(j=0;j<=199;j++)
        {
          if(Gitter[j*200+i]==1)
          {
            woWarIchSchon.setColor(Color.red);
            woWarIchSchon.drawLine(aktivX,aktivY,aktivX,aktivY);
          }
        }
      }
    } while (gewonnen == 0);
  }
}

Ich müßte nur wissen, wie man wo welchen Befehl einträgt. Und dass er nicht in einer Dauerschleife festhängt, sprich auf Tastendruck wartet?
 
Zuletzt bearbeitet:

Androbin

Bekanntes Mitglied
Das geht ganz einfach mit der dem Interface "KeyListener":
Implementiere dieses zuerst und ´überschreibe dann die entsprechenden Methoden.
Zu guter letzt musst du den Listener nur noch hinzufügen mit "JComponent#addKeyListener( listener )"!
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class woWarIchSchon extends JFrame implements KeyListener {
    
    public woWarIchSchon() {
        
        setSize( 200, 200 );
        setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        setVisible( true );
        
        addKeyListener( this );
        
    }
    
    public static void main( String[] args ) { new woWarIchSchon(); }
    
    public void paint( Graphics g ) {
        
        int[][] gitter = new int[ 200 ][ 200 ];
        
        int aktivX = 100;
        int aktivY = 100;
        
        gitter[ aktivX ][ aktivY ] = 1;
        
        int gewonnen = 0;
        
        while ( gewonnen == 0 ) { // Endlosschleife //
            
            g.setColor( Color.WHITE );
            g.fillRect( 0, 0, 199, 199 );
            
            for ( int x = 0; x < gitter.length; x++ )
                for ( int y = 0; y < gitter[ x ].length; y++ )
                    if ( gitter[ x ][ y ] == 1 ) {
                        
                        g.setColor( Color.RED );
                        g.drawLine( aktivX, aktivY, aktivX, aktivY );
                        
                    }
            
        }
        
    }
    
    @ Override
    public void keyPressed( KeyEvent e ) {
        
        switch ( e.getKeyCode() ) {
            
            case KeyEvent.VK_DOWN :
                // punkt.nachUnten(); //
                break;
                
            case KeyEvent.VK_LEFT :
                // punkt.nachLinks(); //
                break;
                
            case KeyEvent.VK_RIGHT :
                // punkt.nachRechts(); //
                break;
                
            case KeyEvent.VK_UP :
                // punkt.nachOben(); //
                break;
                
        }
        
    }
    
    @ Override
    public void keyReleased( KeyEvent e ) { }
    
    @ Override
    public void keyTyped( KeyEvent e ) { }
    
}
 
Zuletzt bearbeitet:

Gucky

Top Contributor
Oder, wenn du nicht alle, vom Interface bereitgestellten Methoden brauchst, kannst du auch einen KeyAdapter benutzen. Das ist einfach eine abstrakte Klasse, die das Interface KeyListener implementiert und so musst du nicht alles überschreiben.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K JavaFX Memory Spiel AWT, Swing, JavaFX & SWT 12
A Problem Spiel auf Panel der GUI zu bringen AWT, Swing, JavaFX & SWT 1
Zeppi Swing Button soll Spiel zurücksetzen AWT, Swing, JavaFX & SWT 5
J Spiel mit Java AWT, Swing, JavaFX & SWT 9
MABY Swing Spiel mit 2 AWT, Swing, JavaFX & SWT 4
O Focus zwischen Chat und Spiel wechselns AWT, Swing, JavaFX & SWT 3
C Benutzername in GUI eingeben und nach Spiel neues Fenster Benutzername wieder anzeigen AWT, Swing, JavaFX & SWT 1
Y Simple Spiel ploten AWT, Swing, JavaFX & SWT 2
H Swing Spiel: Maexchen: method cannot be applied to given types AWT, Swing, JavaFX & SWT 3
X Snake - Spiel AWT, Swing, JavaFX & SWT 27
U Event Handling JButton Actionevent: starte Spiel AWT, Swing, JavaFX & SWT 4
B Tastensteuerung im Spiel AWT, Swing, JavaFX & SWT 5
N Hilfe bei Memory-Spiel AWT, Swing, JavaFX & SWT 18
T 2D-Grafik Im 2D Spiel zoomen AWT, Swing, JavaFX & SWT 6
S Swing Spiel Richtig/Falsch implementieren AWT, Swing, JavaFX & SWT 5
J 2D-Grafik Textbasiertes 2D Spiel, jedes Zeichen manipulierbar AWT, Swing, JavaFX & SWT 7
K Swing Spiel flackert sehr häufig AWT, Swing, JavaFX & SWT 2
J Spieleprogramm als "richtiges" Spiel starten AWT, Swing, JavaFX & SWT 19
B Swing Memory-Spiel AWT, Swing, JavaFX & SWT 2
M Swing Memory Spiel in Eclipse AWT, Swing, JavaFX & SWT 5
D Probleme mit Spiel-Engine. Komische Fehler. AWT, Swing, JavaFX & SWT 5
B spiel atomica mit swing AWT, Swing, JavaFX & SWT 6
G Problem mit Swing bei einem Sudoku Spiel AWT, Swing, JavaFX & SWT 2
G Spiel frage zu bilder in java einbinden AWT, Swing, JavaFX & SWT 3
M Problem bei Schiffeversenken-Spiel AWT, Swing, JavaFX & SWT 4
G Spielfeld für ein Spiel erstellen, wie am besten? AWT, Swing, JavaFX & SWT 4
A Swing JButton mit Pfeiltasten bewegen AWT, Swing, JavaFX & SWT 6
B bewegung mit Pfeiltasten? AWT, Swing, JavaFX & SWT 2
J pfeiltasten AWT, Swing, JavaFX & SWT 2
M Swing [JTextPane] Cursor lässt sich nicht mit Pfeiltasten bewegen AWT, Swing, JavaFX & SWT 3
I jScrollpane: Scrollverschiebung durch Pfeiltasten verhindern AWT, Swing, JavaFX & SWT 2
O TextBoxen Focus über Pfeiltasten steuern AWT, Swing, JavaFX & SWT 3
I Pfeiltasten für KeyEvent AWT, Swing, JavaFX & SWT 4
G JScrollPane - scrollen mit Pfeiltasten AWT, Swing, JavaFX & SWT 3
H Swing Auf Klick auf Menü-Eintrag reagieren AWT, Swing, JavaFX & SWT 0
VPChief Buttons Reagieren erst wenn ich Fenster minimiere AWT, Swing, JavaFX & SWT 4
TheJavaKid Auf eine Zeichnung im Canvas reagieren AWT, Swing, JavaFX & SWT 13
J CheckBoxListCell auf click event in listView reagieren AWT, Swing, JavaFX & SWT 1
L JavaFX Image im ImageView auf Scroll Listener reagieren AWT, Swing, JavaFX & SWT 5
L JSplitPane - auf Änderung reagieren AWT, Swing, JavaFX & SWT 4
F Event Handling JTextArea auf bestimmte Eingabe reagieren (Return-Taste) AWT, Swing, JavaFX & SWT 2
S Swing Auf Änderungen eines Models in der View einer JTable reagieren AWT, Swing, JavaFX & SWT 1
J KeyListener um auf CTRL-Enter zu reagieren AWT, Swing, JavaFX & SWT 2
C Swing Mehrere JSlider sollen aufeinander reagieren AWT, Swing, JavaFX & SWT 4
2 Anfänger problem: Buttenklick soll reagieren AWT, Swing, JavaFX & SWT 9
H Swing Auf Änderung bei JRadioButton reagieren. AWT, Swing, JavaFX & SWT 3
S JTable - Auf spezielle Eingabe nicht reagieren. AWT, Swing, JavaFX & SWT 5
S Auf Tastendruck reagieren AWT, Swing, JavaFX & SWT 2
F Swing Auf JComboBox-Event erst NACH Auswahl reagieren AWT, Swing, JavaFX & SWT 8
N Swing Auf Wertänderung reagieren. AWT, Swing, JavaFX & SWT 5
M Swing Auf Veränderung des Clipboards reagieren AWT, Swing, JavaFX & SWT 7
L SWT Tree reagieren BEVOR selektiert wurde AWT, Swing, JavaFX & SWT 2
C Auf Größenänderung eines Fensters (JFrame) reagieren AWT, Swing, JavaFX & SWT 2
M In Jlist auf Änderungen von mehreren JLabels reagieren AWT, Swing, JavaFX & SWT 3
N Swing JComboBox: Auf Model- und Selectionänderungen reagieren AWT, Swing, JavaFX & SWT 2
S Swing Auf Enter - Eingabe reagieren AWT, Swing, JavaFX & SWT 10
R Events - Nur auf eines reagieren AWT, Swing, JavaFX & SWT 3
T JComboBox: ActionListener/ItemListener wie nur auf bestimmte Events reagieren? AWT, Swing, JavaFX & SWT 7
R JList: auf den selektierten Eintrag reagieren AWT, Swing, JavaFX & SWT 4
A JOptionPane soll auf Enter reagieren AWT, Swing, JavaFX & SWT 4
G Button auf Enter reagieren AWT, Swing, JavaFX & SWT 5
G JTable auf Doppelklick reagieren AWT, Swing, JavaFX & SWT 4
G Auf Buttons reagieren AWT, Swing, JavaFX & SWT 10
A ComboBox soll reagieren ohne fokus AWT, Swing, JavaFX & SWT 7
V Nulllayout und wie auf Resizen reagieren? AWT, Swing, JavaFX & SWT 4
B Auf Fenster Pos.Änderung reagieren und 2. Fenster andocken AWT, Swing, JavaFX & SWT 10
D JButton mit Fokus soll auf ENTER reagieren AWT, Swing, JavaFX & SWT 3
G JTree soll nur auf Mausklick reagieren AWT, Swing, JavaFX & SWT 10
P Änderung der Fenstergrösse abragen und reagieren. AWT, Swing, JavaFX & SWT 3
T Auf Einblenden von Scrollbars reagieren AWT, Swing, JavaFX & SWT 9
G Auf Ereignis in JComboBox reagieren AWT, Swing, JavaFX & SWT 3
W JPanel, JLabel und MouseListener -> auf clicks reagieren AWT, Swing, JavaFX & SWT 5
I JComboBox soll auf Tastendruck reagieren AWT, Swing, JavaFX & SWT 4
F JOptionPane soll nicht auf ENTER reagieren AWT, Swing, JavaFX & SWT 8
G Auf Fenstergrößen-Änderung reagieren AWT, Swing, JavaFX & SWT 10
G JTable: Auf Tasten reagieren möglich? AWT, Swing, JavaFX & SWT 2
T JOptionPane nicht auf Tastendruck reagieren AWT, Swing, JavaFX & SWT 2
A JButton und JCheckBox im JTree reagieren nicht AWT, Swing, JavaFX & SWT 13
W Auf Eingabe von Return reagieren AWT, Swing, JavaFX & SWT 4
M Panels reagieren nicht auf Dialoge AWT, Swing, JavaFX & SWT 3
F JComboBox setEditable( true ) auf Tastatur Events reagieren AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben