guten abend miteinander;
ich hab mal wieder nen denkfehler irgendwie...
undzwar hab ich nen addKeyListener; aber den kenn ich nur in verbindung mit JFrame benutzen, aber ich will ihn nicht in der main benutzen weil ich sonst nicht auf die private int move=0; zugreifen kann...
ich weiß auch nicht mehr hab schon sobeil versucht, wäre für hilfe sehr dankbar...
gruß
gabriel
ich hab mal wieder nen denkfehler irgendwie...
undzwar hab ich nen addKeyListener; aber den kenn ich nur in verbindung mit JFrame benutzen, aber ich will ihn nicht in der main benutzen weil ich sonst nicht auf die private int move=0; zugreifen kann...
ich weiß auch nicht mehr hab schon sobeil versucht, wäre für hilfe sehr dankbar...
gruß
gabriel
Code:
import java.awt.*;
import java.awt.event.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.*;
public class Pong1 extends JComponent implements Runnable{
private final static long SLEEPTIME = 10;
private final static int R = 6;
private final static int DELTA_X = 1; //9;
private final static int DELTA_Y = 1; //2;
private int x, y;
private final static int LEFT = -5;
private final static int RIGHT = 5;
private int move=0;
public void run() {
x = getWidth()/2;
y = getHeight()/2;
int dx = DELTA_X;
int dy = DELTA_Y;
long ts = System.currentTimeMillis();
for (;;) {
ts += SLEEPTIME;
long sleep = ts - System.currentTimeMillis();
if (sleep > 0) {
try {
Thread.sleep(sleep);
}
catch (InterruptedException e) {
return;
}
}
x += dx;
y += dy;
if (x-R<=0)
dx = DELTA_X;
else if (x+R>=getWidth()-1)
dx = -DELTA_X;
if (y-R<=0)
dy = DELTA_Y;
else if (y+R>=getHeight()-1)
dy = getHeight()-2;
repaint();
}
}
protected void paintComponent(Graphics g) {
g.setColor(Color.black);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(Color.white);
g.fillOval(x-R, y-R, 2*R, 2*R);
g.setColor(Color.white);
g.fillRect(move, 580, 30, 10);
}
public Dimension getPreferredSize() {
return new Dimension(400, 600);
}
public Pong1(){
aJFrame.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent evt){
if (evt.getKeyCode() == KeyEvent.VK_RIGHT){
move+=1;
System.out.println("right");
}
if (evt.getKeyCode() == KeyEvent.VK_LEFT){
System.out.println("left");
}
if (evt.getKeyCode() == KeyEvent.VK_ESCAPE){
System.exit(0);
}
}
});
}
public static void main(String[] args) {
JFrame aJFrame = new JFrame("PING");
Pong1 bb = new Pong1();
aJFrame.getContentPane().add(bb, BorderLayout.CENTER);
aJFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
aJFrame.pack();
aJFrame.setVisible(true);
(new Thread(bb)).start();
}
}