# ascii zeichen mit pfeiltasten in 2darray bewegen



## tameck (21. November 2007)

hallo 

ich hab en ascii zeichen irgendwo in ein 2darray gesetzt jetzt soll dieses mit den pfeiltasten gesteuert werden können kann mir da jmd helfen ? 

danke gruß tameck


----------



## matdacat (21. November 2007)

Sieh Dir mal die Klassen KeyAdapter und KeyEvent an.


----------



## Matze (21. November 2007)

Wo liegt genau dein Problem?
- Weißt du nicht wie man auf Tastaturereignisse reagieren kann
- oder weißt du nicht wie du deine Figur in dem Array bewegen sollst?


----------



## tameck (26. November 2007)

ich weiß net wie ich die figur im array bewegen soll ... 
hat da jemand eine idee wie ich das hinbekomme das problem dabei ist ja das das array nicht in einem applet ist sondern in der konsole ausgeben werden soll 

gruß tameck


----------



## Matze (26. November 2007)

Stell dir dien Array als Koordinatensystem vor, besser du zeichnest es so auf.

Z.B.: array[5][3]
.................X  Y

.. 1 2 3 4 5 
1[ ][ ][ ][ ][ ]
2[ ][ ][ ][ ][ ]
3[ ][ ][ ][ ][ ]

Wenn du jetzt nach oben willst, dann musst du deine Figur einfach in das Array Feld array[<Jetzige Position>][<Jetzige Position - 1>]

Klar soweit?


----------



## tameck (26. November 2007)

klar danke  
aber wie mach ich das ich die "spielfigur" mit den pfeiltasten im array bewege


----------



## Matze (26. November 2007)

Matze from HwI hat gesagt.:


> Wenn du jetzt nach oben willst, dann musst du deine Figur einfach in das Array Feld array[<Jetzige Position>][<Jetzige Position - 1>]



z.B.: Wenn die Pfeiltaste "Oben" gedrückt wurde dann tu dies...

Oder ist es dein Problem, wie man Tastaturereignisse abfragt?


----------



## tameck (26. November 2007)

hmm das problem hab ich genau ich hab keine ahnung wie ich ein tastaturereigniss abfrage


----------



## zerix (26. November 2007)

Hallo,

Tastatureingaben kannst du mit dem KeyListener abfangen. Der funktioniert genau wie der ActionListener. 

Der KeyListener stellt drei Methoden zur Verfügung:

-keyPressed (Wenn die Taste gedrückt wird)
-keyReleased (Wenn die Taste losgelassen wird)
-KeyTyped (oder so ähnlich)  (Wenn eine Taste gedrückt wurde, also gedrückt und losgelassen)

Diesen KeyListener musst du halt einer Komponente hinzufügen (z. B. deinem Fenster):

addKeyListener();

MFG

zEriX


----------



## Matze (26. November 2007)

Sag das doch gleich:


```
import java.awt.event.*;

public class MyKeyListener extends KeyAdapter{

  public MyKeyCheatsListener() {
    
  }

  public void keyPressed(KeyEvent _ke) {

    if(_ke.getKeyCode() == _ke.VK_UP){
      //Hier den Code wenn die Pfeiltaste nach oben gedrückt wurde	
    }
    else if(_ke.getKeyCode() == _ke.VK_DOWN){
      //Hier den Code wenn die Pfeiltaste nach unten gedrückt wurde	
    }
    else if(_ke.getKeyCode() == _ke.VK_LEFT){
      //Hier den Code wenn die Pfeiltaste nach links gedrückt wurde	
    }
    else if(_ke.getKeyCode() == _ke.VK_RIGHT){
      //Hier den Code wenn die Pfeiltaste nach rechts gedrückt wurde	
    }
  }
}
```

So könnte dein KeyListener Klasse aussehen, die auf einen Tastendruck reagiert. Jetzt musst du allerdings noch einen Listener an die Komponennte hängen, die einen Tastendruck melden soll. Da es sich bei deinem Programm allerdings um eine Konsolenanwendung handelt, weiß ich leider nicht genau wo man da einen KeyListener hinhängen soll. Dies müsste dir jemand anderes erklähren oder du schaust einfach mal in die API


----------



## tameck (26. November 2007)

kannst du mir vll noch zeigen wie ein einfahcer keylistener aussieht  und vielen dank für deine große hilfe


----------



## Matze (26. November 2007)

Meiner Meinung nach ist das der einfachst (übersichtlichste) für dein Vorhaben. Den Code müsstest du direkt in eine leere Klasse übernehmen können (package nicht vergessen) und dann ein Objekt davon erzeugen. Dieses Objekt ist dann dein KeyListener.


----------



## tameck (26. November 2007)

okay danke


----------

