J
JNille
Gast
also, mein Snooker-Applet is jetzt ein bißl weiter, ich hab mal 10 Kugeln erstellt (mithilfe hunderter for-schleifen, was ziemlich nervt, aber gut).
Und jetzt
- flimmern 1. natürlich die Kugeln, weil sie kurz nach erstellen bereits wieder gelöscht werden, und
- werden sie nicht langsamer, was ich mir nicht erklären kann, in der version mit einer Kugel ging es ja noch... ???:L
also der code, vllt kann ja jemand helfen, wie ich diese probleme löse....
übrigens: einige zeilen stammen eventuell noch aus vorigen versionen, also stört euch nicht an dem explizit definierten Konstruktor etc....
Und jetzt
- flimmern 1. natürlich die Kugeln, weil sie kurz nach erstellen bereits wieder gelöscht werden, und
- werden sie nicht langsamer, was ich mir nicht erklären kann, in der version mit einer Kugel ging es ja noch... ???:L
also der code, vllt kann ja jemand helfen, wie ich diese probleme löse....
Code:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class Snooker extends Applet
{
Graphics g;
Color hellgrün, grün, schwarz, rot, hellrot, weiß;
Kugel[] k = new Kugel[10];
public void init()
{
for(int i=0; i<k.length-1; i++)
{
k[i] = new Kugel();
}
for(int i=0; i<k.length-1; i++){
k[i].x = (int)(Math.random()*(460 - 15)+20);
k[i].xplus = 1;
k[i].yplus = 1;
k[i].y = (int)(Math.random()*(260 - 15)+20);
k[i].wartezeit = 2;
}
g = getGraphics();
hellgrün = new Color(0,200,0);
schwarz = new Color(30,30,30);
rot = new Color(170,0,0);
hellrot = new Color(255,0,0);
weiß = new Color(250,250,255);
grün = new Color(0,120,0);
/*super.addMouseMotionListener(new MouseMotionListener(){
public void mouseMoved(MouseEvent evt)
{
try{Thread.sleep(100);}
catch(InterruptedException e){}
zeichneKugel(evt);
};
public void mouseDragged(MouseEvent evt){}
});
*/
super.addMouseListener(new MouseListener(){
public void mousePressed(MouseEvent evt){}
public void mouseReleased(MouseEvent evt){}
public void mouseClicked(MouseEvent evt)
{
zeichneKugel(evt);
}
public void mouseEntered(MouseEvent evt){}
public void mouseExited(MouseEvent evt){}
});
}
public void zeichneKugel(MouseEvent evt)
{
g.setColor(schwarz);
g.fillRect(10,10,480,280);
g.setColor(grün);
g.fillRect(20,20,460,260);
//g.setColor(hellgrün);
//g.fillRect(25,30,455,250); //licht-effekt -naja
while(!Thread.interrupted())
{
for (int i=0; i<k.length-1; i++){
k[i].weiter();
g.setColor(rot);
g.fillOval(k[i].x,k[i].y,15,15);
g.setColor(hellrot);
g.fillOval(k[i].x+2,k[i].y+2,9,9);
g.setColor(weiß);
g.fillOval(k[i].x+8,k[i].y+8,4,4);
k[i].warte();
}
for (int i=0; i<k.length-1; i++){
g.setColor(grün);
g.fillOval(k[i].x,k[i].y,15,15);
}
}
}
}
class Kugel
{
Kugel()
{
}
//double nummer;
Color farbe;
int x, y, xplus, yplus, wartezeit;
void warte()
{
Thread t = new Thread();
try{t.sleep(wartezeit);}
catch(InterruptedException e){
System.out.println("E!! ");
};
}
void weiter()
{
x+=xplus; y+=yplus;
wartezeit = (int)(wartezeit + Math.pow(wartezeit, 1.7)*.001);
if(x>=465 || x<=20) xplus = -xplus;
if(y>=265 || y<=20) yplus = -yplus;
}
}
übrigens: einige zeilen stammen eventuell noch aus vorigen versionen, also stört euch nicht an dem explizit definierten Konstruktor etc....