Translate

Thursday, 13 December 2012

Game Java Klik Bola


BAB I
DASAR TEORI


1.        Java Swing
GUI merupakan aplikasi yang memiliki antarmuka grafis yang menarik
dengan komponen-komponen GUI didalamnya.
Contoh komponen GUI adalah : form, button, checkbox, radiobutton, listbox,
textbox dsb. Pada bahasa pemrograman java, komponen GUI dan
pemrograman GUI menggunakan kelas-kelas yang terdapat dalam package
swing. Package swing merupakan pengembangan dari package awt pada java
versi sebelumnya.
2.        Jframe
Berfungsi sebagai layar utama (main window) untuk menjalankan aplikasi java GUI,
Dapat diletakkan komponen GUI sbg interface, antara lain TextField, Button,
CheckBox dan lainnya.
3.        JLabel
Label menampilkan teks pada layar dengan konstruktor sbb :
JLabel();
JLabel(String teks);
JLabel(String teks, int alignment);





BAB II
PEMBAHASAN

Program terdiri dari 6 class. yaitu:
1.                   GUI.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package GameKlikBola;

/**
 *
 * @author APOY
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        GUI gui = new GUI();
        gui.setVisible(true);
    }
}

Class ini bertanggung jawab tentang form dan aksi-aksi interface yang ada di dalamnya. Oiya, untuk perhitungan koordinat waktu kita melakukan klik pada bola itu ada dalam fungsi berikut:
void klikKanvas() {
Objek.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent evt) {
Objek.mouseClicked(evt);
xx = Objek.posX();
yy = Objek.posY();
int objekX = Objek.getX();
int objekY = Objek.getY();
if ((xx > objekX && xx <= objekX + 50) && (yy > objekY && yy <= objekY + 50)) {
player.setScore();
}
}
public void mousePressed(MouseEvent me) {
}
public void mouseReleased(MouseEvent me) {
}
public void mouseEntered(MouseEvent me) {
}
public void mouseExited(MouseEvent me) {
}
});
}
Koordinat lokasi bola ditentukan dengan variabel objekX dan objekY, sedangkan posisi kursor dengan variabel xx dan yy. Nah jika jika koordinat antara bola dan kursor sama maka logikanya kita berhasil memukul bola itu. Tapi, sulitnya adalah koordinat posisi bola tepat Berada di tengah bola. Adalah hal yang sulit bisa meng-klik bola tepat di tengahnya ditambah lagi bola itu bergerak secara acak. untuk itu, ditambahkan 50 pada posisi objek agar kita bisa mendapat skor jika memukul bola itu walaupun tidak pas di tengahnya.

2.                   Animasi.java

package GameKlikBola;

import java.util.Random;

/** * @author APOY */
public class animasi extends Thread {

    objek picture;
    Random acak;
    level lev=new level();
    //int speed = 1000;
    int x, y, dx, dy;

    public animasi(objek objeknya) {
        this.picture = objeknya;
    }

    @Override
    public void run() {

        while (true) {
            x = (int) (Math.random() * 750);
            y = (int) (Math.random() * 300);

            picture.setLocation(x, y, dx, dy);
            picture.setLocation(x, y);
            System.out.println("x=" + x + " y=" + y);
            picture.repaint();

            try {
                sleep(lev.getSpeed());
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

Class ini bertanggung jawab tentang animasi dan mengatur thread yang berjalan. Animasi ini mengatur objek bola agar bergerak secara random di dalam Canvas dan kecepatannya diatur oleh thread tadi.
3.                   level.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package GameKlikBola;

/**
 *
 * @author APOY
 */
public class level {
    int speed=1000;

    public void setLevelBaru(){
        speed-=250;
    }
    public int getSpeed(){
        return speed;
    }
}

Ini sebenarnya buat penanganan level. Jika mendapatkan skor tertentu, maka bisa ke level selanjutnya dengan kecepatan gerak bola meningkat.



4.                   Objek.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package GameKlikBola;

import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.MouseEvent;

/**
 *
 * @author APOY
 */
public class objek extends Canvas{
    int x, y, l, t, dx, dy,posX,posY;
    boolean move = true;
    Canvas kanvas;

    public objek() {

        l = 30;
        t = 30;

        setBackground(Color.GRAY);
//        setBackground();
    }

    public void setLocation(int x, int y, int dx, int dy) {
        this.x = x;
        this.y = y;
        this.dx = dx;
        this.dy = dy;
    }
    @Override
    public void setLocation(int x, int y) {
        this.x = x;
        this.y = y;
//        this.dx = dx;
//        this.dy = dy;
    }

    @Override
    public int getX() {
        return x;
    }

    @Override
    public int getY() {
        return y;
    }

    public int getDX() {
        return dx;
    }

    public int getDY() {
        return dy;
    }

    @Override
    public void paint(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;
        g2.setColor(Color.RED);
        g2.fillOval(getX(), getY(), l, t);
    }

    public void mouseClicked(MouseEvent e){
        posX=e.getX();
        posY=e.getY();

    }

    public int posX(){
        return posX;
    }

    public int posY(){
        return posY;
    }

}

Class objek gunanya untuk menciptakan objek bola tadi sekalian mencatat koordinat tiap gerakan bola dalam kanvas.

5.      Pemain.java

package GameKlikBola;

/** * @author APOY */
public class pemain {

    String name;
    int score = 0;
    int total = 0;

    public pemain(String name) {
        this.name = name;
    }

    String getName() {
        return name;
    }
    void setScore() {
        score++;
    }
    int getScore() {
        return score;
    }
    void setTotalScore(int total) {
        this.total += total;
    }
    int getTotalScore() {
        return total;
    }
}

Class Pemain ini untuk mengidentifikasi pemain, yaitu nama dan skor.
6.      Main.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package GameKlikBola;

/**
 *
 * @author APOY
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        GUI gui = new GUI();
        gui.setVisible(true);
    }
}

Main class untuk menjalankan program.










Out Put Program

Petunjuk :
Kita harus meng-klik bola warna merah untuk mendapatkan skor. Setiap klik yang mengenai bola akan mendapat skor +1, permainan selesai saat waktu sudah 30 detik (ada countdown timer-nya.).

No comments:

Post a Comment