package particles;

import java.awt.Graphics;

public class Particle extends Thread implements Drawable {
	private int x;
	private int y;

	public Particle(ParticleCanvas canvas) {
		//inicijalna pozicija je slucajna u okviru platna
		x = (int) (Math.random() * 500);
		y = (int) (Math.random() * 500);
		//startujemo nit
		start();
	}

	public void draw(Graphics g) {
		//iscrtavamo cesticu, dobra je ovakva organizacija koda
		//da svaka cestica zna samu sebe da iscrta
		g.drawOval(x, y, 5, 5);
	}

	@Override
	public void run() {
		//metoda run je ono sto nit izvrsava kada dobije vreme od procesa
		while (true) {
			move();
			try {
				Thread.sleep(100);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	private void move() {
		//pomeranje se vrsi na slucajan nacin u jednom od 9 mogucih pravaca
		//(0,0),(0,1),(0,-1),(1,0),(1,1),(1,-1),(-1,0),(-1,1),(-1,-1)
		int dx = (int) (Math.random() * 3) - 1;
		int dy = (int) (Math.random() * 3) - 1;
		x += dx;
		y += dy;
	}
}
