Game Berburu Hantu : Game Simple Dari Java

Gue memang jarang ngoding java, sekalinya ngoding bikin game, itupun karena ada project UTS #haha. Dikarenakan waktu yang mepet dan gue juga sudah lupa tekhnik – tekhnik ngoding java akhirnya gue memutuskan untuk mencari referensi di internet dan akhirnya dapatlah gue game simple yang bernuansa java.

Dengan sedikit insting untuk modif dan bantuan tutorial – tutorial dari modul java yang diberikan oleh pak dosen game itupun bisa gue ubah jauh dari aslinya #haha. Game itu awalnya bernama CatchTheRat yang source code nya bisa kalian dapatkan disiniGame ini terbilang memang sangat sederhana tidak ada pembukaan (title screen) dan tampilan score. Maka dari itu, lewat seorang programmer handal seperti gue #halah game ini sedikit berubah dari segi penampilan dan berganti nama menjadi Ghost Hunter atau Game Berburu Hantu.

So, buat kalian yang pengen buat game dari java entah karena pengen atau tuntutan tugas dari dosen mungkin source code ini bisa jadi referensi buat kalian.

Pertama, siapkan eclipse kalian buat java project baru nama bebas kemudian tambahkan class beri nama TitleScreen.java lalu salin code di bawah ini

 

Title Screen

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GraphicsConfiguration;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File;
import java.util.Random;
import java.util.Scanner;

import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.DataLine;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.Timer;
import javax.xml.stream.events.StartDocument;
public class TitleScreen extends JFrame{

JButton lb;
JLabel score;
public TitleScreen()
{

setTitle(“Ghost Hunter(Beta) v1.0”);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
//Ngatur background

setContentPane(new JLabel(new ImageIcon(“halloween.png”)));

lb=new JButton(new ImageIcon(“play_button.png”));
lb.setBounds(500, 500, 350, 70);
ButtonHandler bh = new ButtonHandler();
lb.addActionListener(bh);

score=new JLabel(“score”);
score.setLocation(200, 200);

// Set layout to the content pane
getContentPane().setLayout(null);
getContentPane().add(lb);
getContentPane().add(score);

// Maximize the frame

setExtendedState(MAXIMIZED_BOTH);
}

public static void main(String args[])
{
new TitleScreen();

}

private class ButtonHandler implements ActionListener {
public void actionPerformed(ActionEvent event) {

if(event.getSource()==lb){
Ghost ghost = new Ghost();
}
}
}

}

[collapse]

Disini kita perlu menyiapkan 2 buah gambar yang bernama halloween.png(untuk background) dan play_button.png(untuk tombol play). Jika berhasil maka tampilannya akan seperti ini

Preview Title Screen

TitleScreen

[collapse]

Kedua, kita lanjut untuk pembuatan inti dari gamenya, buat class baru dan beri nama Ghost.java kemudian salin kembali source code berikut ini:

Ghost.java

import javax.swing.*;

import java.awt.*;
import java.awt.event.*;
import java.util.Random;
import java.util.Scanner;
import java.io.*;

import javax.sound.midi.*;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.DataLine;

public class Ghost extends JFrame
{

// ghost

JLabel lb;
int i = 0;

// Move it randomly!

Random r;

public Ghost() {
// TODO Auto-generated constructor stub

setTitle(“Ghost Hunter(Beta) v1.0”);
setLayout(new FlowLayout());
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);

Scanner s=new Scanner(System.in);
Object[] options = {“Easy”,
“Medium”,
“Greget”};
int select = JOptionPane.showOptionDialog(null,
“Select Your Level?”
+ “”,
“Ghost Hunter”,
JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
options,
options[2]);

int k = 0;
//pilih level
if(select == JOptionPane.YES_OPTION){
k=900;
new Ghost(k);
}else if(select == JOptionPane.NO_OPTION){
k=620;
new Ghost(k);
}else if(select == JOptionPane.CANCEL_OPTION){
k=100;
new Ghost(k);
}

// Ngatur Background

setContentPane(new JLabel(new ImageIcon(“background.jpg”)));
// Set layout to the content pane
getContentPane().setLayout(new FlowLayout());
// Hantu

lb=new JLabel(new ImageIcon(“ghost.png”));
getContentPane().add(lb);

r=new Random();
// Create a timer and call it for every k seconds
new Timer(k,new ActionListener(){
public void actionPerformed(ActionEvent ae)
{

lb.setLocation(r.nextInt(getWidth()-75),r.nextInt(getHeight()-75));
}
}).start();
// Add mouselistener, notify when user clicks it!

lb.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent me)
{
// Create a beep sound when clicked to notify

Toolkit.getDefaultToolkit().beep();
// Also print it!
i = i + 1;
JOptionPane.showMessageDialog(null, “Hantu berhasil ditangkap!!\n Score anda: ” +i);

}
});
// Maximize the frame

setExtendedState(MAXIMIZED_BOTH);

try {
File yourFile = new File(Ghost.class.getResource(“circuscharlie.wav”).getFile());
AudioInputStream stream;
AudioFormat format;
DataLine.Info info;
Clip clip;

stream = AudioSystem.getAudioInputStream(yourFile);
format = stream.getFormat();
info = new DataLine.Info(Clip.class, format);
clip = (Clip) AudioSystem.getLine(info);
clip.open(stream);
clip.start();
}
catch (Exception e1) {
}
}

 

public static void main(String args[])
{
}

[collapse]

Jika berhasil maka tampilannya akan seperti ini:

Ghost.java

Ghost

[collapse]

Game sudah siap untuk dimainkan dan selamat berburu hantu.

nb: buat yang males copy paste source code-nya. Kalian bisa download script-nya disini

Leave a Reply