C
c0CoKabAnA
Gast
Hi!
Ich versuche mich zur zeit an meinen ersten grafischen spielen!
Nunja ist beireits nichts großes aber die ersten probleme kommen schon...
1tens: Wieso kann ich das Panel nicht dort plazieren wo ich will sondern es hängt sich imer links oben ins eck ein?
2tens: Wieso funtkioniert der KeyListener nicht?
bin schon seit stunden am rumprobieren doch irgendwie ändert sich nie was...
hier der code:
mfg
Ich versuche mich zur zeit an meinen ersten grafischen spielen!
Nunja ist beireits nichts großes aber die ersten probleme kommen schon...
1tens: Wieso kann ich das Panel nicht dort plazieren wo ich will sondern es hängt sich imer links oben ins eck ein?
2tens: Wieso funtkioniert der KeyListener nicht?
bin schon seit stunden am rumprobieren doch irgendwie ändert sich nie was...
hier der code:
Code:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class BallApplet extends JFrame implements KeyListener {
private static final long serialVersionUID = -4542245838586619925L;
private int x_pos = 150;
private int y_pos = 150;
private int speed = 5;
private int x_speed = speed;
private int y_speed = speed;
private int radius = 20;
private JPanel panel = new JPanel();
private Image dbImage;
private Graphics dbg;
public static void main(String[] args) {
new BallApplet();
}
public BallApplet() {
setLayout(null);
setSize(800, 600);
setDefaultCloseOperation(EXIT_ON_CLOSE);
panel.setBounds(20, 20, 760, 560);
panel.setBackground(Color.LIGHT_GRAY);
panel.addKeyListener(this);
add(panel);
setVisible(true);
run();
}
public void run(){
while( true ) {
x_pos += x_speed;
y_pos += y_speed;
if( x_pos > panel.getWidth() - radius ) {
//Bande rechts
x_speed = x_speed - speed;
} else if( x_pos < radius ){
//Bande links
x_speed = x_speed + speed;
}
if( y_pos > panel.getHeight() - radius ) {
//Bande unten
y_speed = y_speed - speed;
} else if( y_pos < radius ){
//Bande oben
y_speed = y_speed + speed;
}
if( dbImage == null ) {
dbImage = createImage( panel.getSize().width, panel.getSize().height );
dbg = dbImage.getGraphics();
}
dbg.setColor( getBackground() );
dbg.fillRect(0, 0, this.getSize().width, this.getSize().height);
dbg.setColor (getForeground());
paint(dbg);
getGraphics().drawImage( dbImage, 0, 0, panel );
try {
Thread.sleep (20);
} catch( InterruptedException ex ) {
ex.printStackTrace();
}
}
}
public void paint(Graphics g){
g.setColor (Color.red);
g.fillOval (x_pos - radius, y_pos - radius, 2 * radius, 2 * radius);
}
public void keyPressed(KeyEvent arg0) {}
public void keyReleased(KeyEvent arg0) {}
public void keyTyped(KeyEvent e) {
System.out.println("im KeyListener");
if( e.getKeyCode() == 37 ) {
System.out.println("Pfeiltaste links");
}
if( e.getKeyCode() == 39 ) {
System.out.println("Pfeiltaste rechts");
}
}
}
mfg