E
einGast
Gast
Ich möchte das Spiel Pong programmieren, habe auch schon einiges geschafft.
Leider hänge ich schon ich schon eine Woche am keyListener fest. Der keyListener funktioniert nicht, weil womöglich der Focus falsch gesetzt wurde? Ich bekomme einfach die Balken nicht bewegt.
Für Unterstützung wäre ich sehr, sehr dankbar.
Erik
hier noch der Code
[Edit by Beni: Codetags]
Leider hänge ich schon ich schon eine Woche am keyListener fest. Der keyListener funktioniert nicht, weil womöglich der Focus falsch gesetzt wurde? Ich bekomme einfach die Balken nicht bewegt.
Für Unterstützung wäre ich sehr, sehr dankbar.
Erik
hier noch der Code
Code:
public void play(){
if(score1+score2==0){start_rand(r_x);}
Graphics g = dbl_buff.getGraphics(); //auf panel zugreifen
Graphics2D g2d = (Graphics2D) g; //auf Java2D casten
Graphics h = ca.getGraphics();
Graphics2D g2h = (Graphics2D) h;
g2d.setPaint(Color.white); //weiße Farbe
while(start==true){
if(evolved==true){ //hintergrund
g2d.drawImage(background,0,0,null);} //evolved
else{Rectangle2D.Double background_classic = new Rectangle2D.Double(0,0,540,500); //classic
g2d.setPaint(Color.black);
g2d.fill(background_classic);
g2d.setPaint(Color.white);
}
g2d.drawString(String.valueOf(score1),230,15); //punktestand (spieler1)
g2d.drawString(String.valueOf(score2),290,15); //punktestand (spieler2)
if (ball_x>480 || ball_x<30){ //balken1 getroffen?
if (ball_y+20>bar2 && ball_y<bar2+100 && ball_x<=30 && ball_x>=10){r_x=bounce(r_x);} //p1
if (ball_y+20>bar1 && ball_y<bar1+100 && ball_x>=480 && ball_x<=500){r_x=bounce(r_x);} //p2
}
//FINISHED
//abprallen an balken2 in y-richtung
if (bars==true){ //balken2 aktiviert?
if (ball_y+20>=bar1 && ball_y<bar1+100 && ball_x+20>=350 && ball_x<=370){r_x=bounce(r_x);} //p1
if (ball_y+20>=bar2 && ball_y<bar2+100 && ball_x+20>=160 && ball_x<=180){r_x=bounce(r_x);} //p2
}
if (ball_x>540 || ball_x<-20){scored();} //punkt erzielt?
//IN PROGRESS!!
//abprallen an balken in y-richtung
if ((ball_y+20>bar1 & ball_x>=30 & ball_x<30) || (ball_y<bar1+100 & ball_x>=30 & ball_x<30)){r_y=bounce(r_y);} //abprallen: y-richtung(an balken1 von p1)
if ((ball_y+20<bar2 & ball_x>=480 & ball_x<540) || (ball_y>bar2+100 & ball_x>=480 & ball_x<540)){r_y=bounce(r_y);}//abprallen: y-richtung(an balken1 von p2)
//IN PROGRESS
//abprallen an balken2 in y-richtung
/*if (bars==true){
if ((ball_y+20>bar1 & ball_x>10 & ball_x<29) || (ball_y<bar1+100 & ball_x>10 & ball_x<29)){r_y=bounce(r_y);} //abprallen: y-richtung(an balken2 von p1)
if ((ball_y<bar2 & ball_x>479 & ball_x<500) || (ball_y>bar2+100 & ball_x>479 & ball_x<500)){r_y=bounce(r_y);}//abprallen: y-richtung(an balken2 von p2)
}*/
if (ball_y>440 || ball_y<10){r_y=bounce(r_y);} //abprallen: y-richtung(an wand)
if(up1==true & bar1>=10){bar1=bar1+10;} //balken bewegen
if(down1==true & bar1<=470){bar1=bar1-10;}
if(up2==true & bar2>=10){bar2=bar2+10;}
if(down2==true & bar2<=470){bar2=bar2-10;}
ball_x=ball_x+r_x; //ballbewegung: x
ball_y=ball_y+r_y; //ballbewegung: y
Ellipse2D.Double ball = new Ellipse2D.Double(ball_x,ball_y,20,20); //ball definieren
//ball neu definieren (classic)
if(evolved==true){ //balken zeichnen
g2d.drawImage(bar,10,bar1,null); //spieler1
if(bars==true){g2d.drawImage(bar,160,bar1,null);} //evolved-style
}else{
Rectangle2D.Double bar1_classic = new Rectangle2D.Double(10,bar1,20,100); //classic-style
g2d.fill(bar1_classic);
if(bars==true){ //2.balken
Rectangle2D.Double bar1_2_classic = new Rectangle2D.Double(160,bar1,20,100);
g2d.fill(bar1_2_classic);
}
}
if(evolved==true){ //spieler2
g2d.drawImage(bar,500,bar2,null);
if(bars==true){g2d.drawImage(bar,350,bar2,null);} //evolved-style
}else{
Rectangle2D.Double bar2_classic = new Rectangle2D.Double(500,bar2,20,100); //classic-style
g2d.fill(bar2_classic);
if(bars==true){ //2.balken
Rectangle2D.Double bar2_2_classic = new Rectangle2D.Double(350,bar2,20,100);
g2d.fill(bar2_2_classic);
}
}
g2d.fill(ball); //ball malen
pause(); //pausieren
g2h.drawImage(dbl_buff,0,0,null);
}
}
[Edit by Beni: Codetags]