import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.Ellipse2D;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Bola {
double arahX = 1;
double x = 0;
double y = 0;
double arahY = 1;
final int DIAMETER = 30;
Game game;
Ellipse2D.Double objBola;
Random rand = new Random();
public Bola(Game game) {
this.game = game;
x = rand.nextInt(200) + 31;
arahX = rand.nextInt(100);
if (arahX > 49) {
arahX = -1;
} else {
arahX = 1;
}
objBola = new Ellipse2D.Double(x, y, DIAMETER, DIAMETER);
}
public void paint(Graphics2D g2d) {
objBola = new Ellipse2D.Double(x, y, DIAMETER, DIAMETER);
g2d.fill(objBola);
}
boolean isPatul() {
return objBola.intersects(game.raket.getBatas());
}
void bergerak() {
if ((arahX >= 0) && (x >= (game.getWidth() - DIAMETER))) {
arahX = arahX * -1;
}
if ((arahX < 0) && (x <= 0)) {
arahX = arahX * -1;
}
x = x + arahX;
if ((arahY < 0) && (y <= 0)) {
arahY = arahY * -1;
}
if ((arahY >= 0) && (y >= (game.getHeight() - DIAMETER))) {
arahY = arahY * -1;
}
if (isPatul()) {
arahY = -Math.abs(arahY);
arahY = arahY * 1.2;
arahX = arahX * 1.2;
}
if (y >= game.getHeight() - DIAMETER) {
game.gameOver();
}
if (y <= 0) {
//perlu: random antara 0.5...1.5
double n=rand.nextInt(101);
double faktor=n/100+0.5;
arahY=arahY*faktor;
}
y = y + arahY;
}
}
Tidak ada komentar:
Posting Komentar