Ich arbeite momentan an einem Ping Pong Spiel und habe nun das Problem, dass der Computer die Tasaureingaben nicht wahrnimmt.
Paint-Methode
Zur Abfrage benutze ich einen in einer Seperaten Klasse befindlichen KeyAdapter:
Könnte mir jemand sagen, wieso der Adapter nicht richtig implimentiert ist?
Ich benutze JBuilder 9.
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import grafik_1.*;
Paint-Methode
Java:
public void paint(Graphics g)
{
super.paint(g);
//g.translate(400, 400);
boolean run=true;
boolean ComputerStatus=true;
//Zeichnen der Hauptkomponenten
Methods.PaintBall(Settings.diametre,Color.red,g);
Methods.drawPaddleP1(g);
Methods.drawPaddleP2(g);
//Bewegung Starten
Methods.RBallMove(Settings.diametre,Settings.Break,g,Settings.BColor);
while(run){
Methods.MoveBall(Variablen.mover,Variablen.movel,Variablen.moveu,Variablen.moved,Settings.diametre,Settings.Break,g,Settings.BColor);
Methods.Apprallen(g,Settings.diametre);
Methods.Goal(g,Settings.diametre,Settings.BColor);
//Spieler2 bewegung
if(KeyInput.A_c){
if(ComputerStatus){
ComputerStatus=false;
}
else{
ComputerStatus=true;
}
}
if(ComputerStatus){
Methods.ComputerPlayer(g);
}
if(!ComputerStatus){
if(KeyInput.A_w){
Methods.movePaddleP2(true,false,g);
}
if(KeyInput.A_s){
Methods.movePaddleP2(false,true,g);
}
}
//Spieler 1 Bewegung
if(KeyInput.A_up){
Methods.movePaddleP1(true,false,g);
}
if(KeyInput.A_down){
Methods.movePaddleP1(false,true,g);
}
//Spielende?
if(Variablen.player1score>=Settings.maxscore||Variablen.player2score>=Settings.maxscore){
run=false;
}
}
g.setColor(Color.white);
g.drawString(Variablen.player1score+":"+Variablen.player2score,Settings.framesizex/2,Settings.framesizey/2);
}
Zur Abfrage benutze ich einen in einer Seperaten Klasse befindlichen KeyAdapter:
Java:
package grafik_1;
import java.awt.event.KeyEvent;
import java.awt.event.KeyAdapter;
public class KeyInput extends KeyAdapter {
public static boolean A_up;
public static boolean A_down;
public static boolean A_w;
public static boolean A_s;
public static boolean A_c;
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_UP) {
A_up = true;
System.out.println("Hoch gedrückt");
}
if (e.getKeyCode() == KeyEvent.VK_DOWN) {
A_down = true;
System.out.println("Runter gedrückt");
}
if (e.getKeyCode() == KeyEvent.VK_W) {
A_w = true;
System.out.println("W gedrückt");
}
if (e.getKeyCode() == KeyEvent.VK_S) {
A_s = true;
System.out.println("S gedrückt");
}
if (e.getKeyCode() == KeyEvent.VK_C){
A_s = true;
System.out.println("C gedrückt");
}
}
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_UP) {
A_up = true;
System.out.println("Hoch losgelassen");
}
if (e.getKeyCode() == KeyEvent.VK_DOWN) {
A_down = true;
System.out.println("Runter losgelassen");
}
if (e.getKeyCode() == KeyEvent.VK_W) {
A_w = true;
System.out.println("W losgelassen");
}
if (e.getKeyCode() == KeyEvent.VK_S) {
A_s = true;
System.out.println("S losgelassen");
}
if (e.getKeyCode() == KeyEvent.VK_C){
A_s = true;
System.out.println("C losgelassen");
}
}
public void keyTyped(KeyEvent e){
}
}
Könnte mir jemand sagen, wieso der Adapter nicht richtig implimentiert ist?
Ich benutze JBuilder 9.