import javax.microedition.lcdui.*; import javax.microedition.lcdui.game.*; import javax.microedition.midlet.*; import java.util.*; import java.lang.*; public class StudsApp extends MIDlet{ public Canvas canvasen = new canvas(); public static Vector vector = new Vector(); public void startApp(){ Display.getDisplay(this).setCurrent(canvasen); canvasen.setFullScreenMode(true); vector.addElement(new Boll(1,1)); } public void pauseApp(){ } public void destroyApp(boolean unconditional){ notifyDestroyed(); } } class canvas extends Canvas implements Runnable{ private Thread thread; public int width = getWidth(), height = getHeight(), x = 4, y = 4, vx = 1, vy = 1; //public static Boll boll = new Boll(); Random r = new Random(); public canvas(){ new Thread(this).start(); } //public void start(){ //Thread t = new Thread(this); //t.start(); //} public void run(){ while(true){ for (int i = 0; i < StudsApp.vector.size(); i++) { ((Boll)StudsApp.vector.elementAt(i)).move(width,height); } } } public void paint(Graphics g){ g.setColor(0xFFFFFF); g.fillRect(0,0,width,height+100); g.setColor(0x000000); for (int i = 0; i < StudsApp.vector.size(); i++) { //g.setColor(((Boll)StudsApp.vector.elementAt(i)).color); g.fillArc(((Boll)StudsApp.vector.elementAt(i)).x, ((Boll)StudsApp.vector.elementAt(i)).y, ((Boll)StudsApp.vector.elementAt(i)).radius,((Boll)StudsApp.vector.elementAt(i)).radius, 0, 360); ((Boll)StudsApp.vector.elementAt(i)).move(width,height); } //for (int i = 0; i < StudsApp.vector.size(); i++) { //((Boll)StudsApp.vector.elementAt(i)).draw(g); // repaint(); //} repaint(); } protected void keyPressed(int keyCode){ //System.out.println(((Boll)StudsApp.vector.elementAt(0)).x); switch(keyCode){ case -3: vx -= 1; break; case -1: vy -= 1; break; case -4: vx += 1; break; case -2: vy += 1; break; case 53: final Boll boll = new Boll(r.nextInt(3),r.nextInt(3)); StudsApp.vector.addElement(boll); //System.out.println(StudsApp.vector.size()); //boll.x = r.nextInt(width); //boll.y = r.nextInt(height); //((Boll)StudsApp.vector.lastElement()).vx = r.nextInt(2)+1; //((Boll)StudsApp.vector.lastElement()).vy = r.nextInt(2)+1; boll.x = 50; //((Boll)StudsApp.vector.lastElement()).color = 0x039003; //repaint(); break; } } } class Boll{ static int x, y, color,radius, vx, vy; //vx = 1, vy = 1; public Boll(int vx, int vy){ x = 5; y = 5; this.vx = vx; this.vy = vy; //vx = 1; //vy = 1; radius = 15; color = 0x000000; } public static void move(int max_x,int max_y){ x += vx; y += vy; if(x > (max_x-radius) || x < 0) vx = -vx; if(y > (max_y) || y < 0) vy = -vy; } /* public void draw(Graphics g){ g.setColor(color); g.fillArc(x,y,radius,radius,0,360); } */ }