G
Gast
Gast
Ich mache als Projekt einen Pong Klon.
Aber bei mir will einfach die Steuerung nicht Funktionieren.
Aber bei mir will einfach die Steuerung nicht Funktionieren.
Code:
import java.awt.*;
import java.awt.event.*;
public class Spielfeld extends Frame implements KeyListener{
private Option setting = new Option("Option");
public char steu='\0';
public Spielfeld(){
super("Auto");
this.setSize(900,700);
this.setBackground(Color.BLACK);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) { System.exit(0); }
});
this.setResizable(false);
this.setVisible(true);
}
public static void main(String[] args){
new Spielfeld();
}
public void paint(Graphics g){
int sp1 = 410;//Rechteck von Spieler 1
int sp2 = 410;//Rechteck von Spieler 2
int richtung = 5;//Richtung vom Ball
int ballX = 50;//X Koordinaten vom Ball
int ballY = 460;//Y Koordinaten vom Ball
int standSp1=0;//Spielstand von Spieler 1
int standSp2=0;//Spielstand von Spieler 2
int counter=3;
String counterStr="";
g.setColor(Color.WHITE);
//Spielfeld Makierung
g.fillRect(20,200,10,490);
g.fillRect(20,200,860,10);
g.fillRect(870,200,10,490);
g.fillRect(20,680,860,10);
//Anzeige
g.setFont (new Font("Arial", Font.BOLD, 70));//Einstellen der Schriftgröße
g.drawString("Spieler1",10,125);
g.drawString("Spieler2",600,125);
this.Sp1Stand(g,0);
g.drawString(":",410,125);
this.Sp2Stand(g,0);
//Schleife:
while(standSp1<10||standSp2<10){
g.clearRect(30,210,840,470);
g.setColor(Color.WHITE);
//Spieler1:
g.fillRect(40,sp1,10,100);
//Spieler2:
g.fillRect(850,sp2,10,100);
//Ball:
g.fillArc(ballX,ballY,10,10,0,360);
this.addKeyListener(this);
//Steuerung Spieler1:
if(this.steu=='a') { //Hoch
sp1--;
}else if(this.steu=='y'){ //Runter
sp1++;
}
//Steuerung Spieler2:
if(this.steu=='9'){//Hoch
sp2--;
}else if(this.steu=='6'){//Runter
sp2++;
}
//Richtung vom ball
if(richtung==1){ // <\
ballX--;
ballY--;
}else if(richtung==2){// <-
ballX--;
}else if(richtung==3){ // </
ballX--;
ballY++;
}else if(richtung==4){ // \>
ballX++;
ballY++;
}else if(richtung==5){ // ->
ballX++;
}else if(richtung==6){ // />
ballX++;
ballY--;
}
//Ränder oben und unten
if((ballY+10)>= 680 && richtung==3){
richtung = 1;
}else if((ballY+5)>= 680 && richtung==4){
richtung = 6;
}else if(ballY <= 210 && richtung==1){
richtung = 3;
}else if(ballY <= 210 && richtung==6){
richtung = 4;
}
//Spielziel:
if(ballX==50 && ballY>=sp1 && ballY<=(sp1+100)){
//Abbrallen in verschiedene Richtungen
if(ballY>=sp1 && ballY<=(sp1+39)){
richtung=6;
}else if(ballY>=(sp1+40)&& ballY<=(sp1+60)){
richtung=5;
}else if(ballY>=(sp1+61)&& ballY<=(sp1+100)){
richtung=4;
}
}else if((ballX+10)==850 && ballY>=sp2 && ballY<=(sp2+100)){
//Abbrallen in verschiedene Richtungen
if(ballY >=sp2 && ballY<=(sp2+39)){
richtung=1;
}else if(ballY>=(sp2+40)&& ballY<=(sp2+60)){
richtung=2;
}else if(ballY>=(sp2+61)&& ballY<=(sp2+100)){
richtung=3;
}
}else{
if(ballX+10==850){
standSp1++;
this.Sp1Stand(g,standSp1);
counter = 3;
while(counter>0){
counterStr=String.valueOf(counter);
g.drawString(counterStr,500,500);
try{
java.lang.Thread.sleep(1000);
} catch(InterruptedException e){
}
g.clearRect(500,500,50,50);
counter--;
}
ballX=860;
ballY=460;
sp1=410;
sp2=410;
richtung=2;
}else if(ballX==50){
standSp2++;
this.Sp2Stand(g,standSp2);
counter= 3;
while(counter>0){
counterStr=String.valueOf(counter);
g.clearRect(500,500,50,50);
g.drawString(counterStr,500,500);
try{
java.lang.Thread.sleep(1000);
}catch(InterruptedException e){
}
counter--;
}
ballX=50;
ballY=460;
sp1=410;
sp2=410;
richtung=5;
}
}
try{
java.lang.Thread.sleep(3);
}catch(InterruptedException e){
}
}
}
public void Sp1Stand(Graphics h,int Stand){
String spielstand =String.valueOf(Stand);
h.clearRect(340,125,75,75);
h.setColor(Color.WHITE);
h.setFont(new Font("Arial",Font.BOLD,70));
h.drawString(spielstand,350,125);
}
public void Sp2Stand(Graphics e,int Stand){
String spielstand =String.valueOf(Stand);
e.clearRect(340,125,75,75);
e.setColor(Color.WHITE);
e.setFont(new Font("Arial",Font.BOLD,70));
e.drawString(spielstand,450,125);
}
public void keyPressed(KeyEvent e){
this.steu='\0';
if(e.getKeyCode()==KeyEvent.VK_A){
this.steu='a';
}else if(e.getKeyCode()==KeyEvent.VK_Y){
this.steu='y';
}else if(e.getKeyCode()==KeyEvent.VK_NUMPAD9){
this.steu='9';
}else if(e.getKeyCode()==KeyEvent.VK_NUMPAD6){
this.steu='6';
}
}
public void keyReleased(KeyEvent e){
this.steu='\0';
}
public void keyTyped(KeyEvent e){
}
}