12/2/2009 - İki cismin çarpışmasına örneklerle ulaşmak: Örnek3 BallCollision
import java.applet.Applet; import java.awt.Color; import java.awt.Graphics; import java.awt.Image;
/** * * @author KAYWINSOFT */ public class BallCollision extends Applet implements Runnable{ Image bgIM; Graphics bgGA; Thread one = new Thread(this); int ball1X = 50; int ball1Y = 50; int ball2X = 300; int ball2Y = 50; int radius = 20; int[] b1CO = new int[400]; int[] b2CO = new int[400]; public void init(){ bgIM = createImage(400,400); bgGA = bgIM.getGraphics(); setBackground(Color.ORANGE); } public void start(){ one.start(); } public void run(){ int i = 0; int one; int two; while(true){ System.out.println(i); one = i; two = i; if(ball1X + radius != ball2X - radius) { b1CO[i] = ball1X++; b2CO[i] = ball2X--; } else{ while(true) { if(ball1X != 0 && ball2X != 300) { ball1X -=1 ; ball2X +=1; bgGA.setColor(Color.black); bgGA.drawOval(ball1X, ball1Y, 2 * radius, 2 * radius); bgGA.setColor(Color.blue); bgGA.drawOval(ball2X, ball2Y, 2*radius, 2*radius); repaint(); } try{ Thread.sleep(20); }catch(Exception e){ } } } repaint(); try{ Thread.sleep (20); } catch (InterruptedException ex) { System.out.println(ex.toString()); } i++; } } public void paint(Graphics g){ g.setColor(Color.black); g.fillOval(ball1X , ball1Y , 2 * radius, 2 * radius); g.setColor(Color.blue); g.fillOval(ball2X, ball2Y, 2 * radius, 2 * radius); } }
En sonunda bu kodla 2 cismin çarpışmasını izleyebiliyoruz. Burda da baya bir amatörce davranıldı ki henüz geliştirme aşamasındadır. İleriki safhalarda çarpışma anında ses ve bir kaç aksiyon daha eklenmesini planlıyorum. ----------------------------------------------------------------- Onur, bu benim programımım abi :D



amatörlükten kastettiğim yer şuydu, henüz eski oluşturulan (paint fonksiyonunda) toplarla işlemleri sonlandıramadım. Global olarak oluşturulan bgGA grafik nesnesi ile işlemleri sonlandırdım. Bunu halledersem zaten işlem tamam :D
|
|
Yorum yaz!
|
|
Hakkımda
Kategoriler
Arkadaşlarım
|