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