Hetalia: Axis Powers - Liechtenstein

Sabtu, 16 Mei 2015

lanjutan game

package kuliah23;

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