L
lite2
Hallo zusammen,
ich bin gerade dabei Java zu lernen.
Aktuell versuche ich ein kleines Spiel zu erstellen.
Auf meinem Frame wird zufällig ein Kreis erstellt, der sich langsam schließt.
Bevor er weg ist soll man mit der Maus rein fahren.
Mein Problem ist aktuell, dass mein Frame sich nicht neu zeichnet.
Wenn ich das Fenster von Hand kurz vergrößere oder verkleinere sieht man wie der Kreis schrumpft.
Ich weiß, dass einiges ziemlich "gefuscht" ist, bitte erklärt mir wie man es "richtig" macht.
Hier nun mein Programmcode:
Datei spiel.java
und
Datei: rechnung.java
Vielen Dank für jede Hilfe
ich bin gerade dabei Java zu lernen.
Aktuell versuche ich ein kleines Spiel zu erstellen.
Auf meinem Frame wird zufällig ein Kreis erstellt, der sich langsam schließt.
Bevor er weg ist soll man mit der Maus rein fahren.
Mein Problem ist aktuell, dass mein Frame sich nicht neu zeichnet.
Wenn ich das Fenster von Hand kurz vergrößere oder verkleinere sieht man wie der Kreis schrumpft.
Ich weiß, dass einiges ziemlich "gefuscht" ist, bitte erklärt mir wie man es "richtig" macht.
Hier nun mein Programmcode:
Datei spiel.java
Code:
import java.lang.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
public class spiel extends Frame {
public static int x,y,i;
public static int cordX = 1;
public static int cordY = 1;
public rechnung calc = new rechnung();
spiel(){
calc.start();
super.setBounds(300,300,700,400);
super.setVisible(true);
super.setTitle("Spiel");
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
this.addMouseMotionListener(new MouseAdapter(){
public void mouseMoved(MouseEvent k){
cordX = k.getX();
cordY = k.getY();
System.out.println(cordX+" : "+cordY);
}
});
}
public void paint(Graphics g) {
g.setColor(Color.red);
g.drawOval(spiel.x, spiel.y, spiel.i, spiel.i);
}
public void update(Graphics g){
g.clearRect(spiel.x, spiel.y, spiel.i+10, spiel.i+10);
}
public static void main(String[] args) {
new spiel();
}
}
und
Datei: rechnung.java
Code:
import java.lang.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
public class rechnung extends Thread {
public void run() {
spiel.x = (int)((Math.random()) *600 + 1);
spiel.y = (int)((Math.random()) *300 + 1);
for(spiel.i = 100;spiel.i> 0;spiel.i--){
System.out.println(spiel.i);
try{
spiel.repaint();
this.sleep(100);
}catch(Exception e){}
}
}
}
Vielen Dank für jede Hilfe
