package fysiktest;

import java.awt.Graphics2D;
import java.awt.Color;

public class Particle {

	private double vx;
	private double vy;
	private double r;
	private Color color;

	private double friction;
	private double gravity;

	private double x;

	public double getX() {
		return x;
	}

	private double y;

	public double getY() {
		return y;
	}

	public Particle(double x, double y, double r, Color color) {
		this.x = x;
		this.y = y;
		this.r = r;
		this.color = color;
		this.vx = -3;
		this.vy = 45;
		this.friction = 0.75;
		this.gravity = 9.81/10;
	}

	public void update() {

		x += vx;
		y += vy;
		vy += gravity;

		checkCollisions();

	}
	
	public void checkCollisions() {

		if (x - r < 0) {

			x = r;
			vx = -(vx * friction);

		} else if (y - r < 0) {

			y = r;
			vy = -(vy * friction);

		} else if (x + r > 800) {

			x = 800 - r;
			vx = -(vx * friction);

			
			//bollen är på marken
			
		} else if (y + r > 800) {

			double oldY = y;

			y = 800 - r;
			vy = -(vy * friction);
			vx = 0.99 * vx;
			if(Math.abs(vx) < 0.1) {
				vx = 0;
				//sluta rulla om hasigheten är för låg
			}

			if (Math.abs(y - oldY) < 1) {
				vy = 0;
				//Om skillnaden i y-led blir liten så ska bollen sluta röra sig i y-led
			}

		}

	}

	public void render(Graphics2D g) {
		g.setColor(color);
		g.fillOval((int) Math.round(x - r), (int) Math.round(y - r), (int) Math.round(2 * r), (int) Math.round(2 * r));
	}
}