Belajar Pemrograman Java Dari Dasar

Belajar Membuat Game 2D Dengan Java dan Netbeans Bagian III: Canvas

Oke, lanjut lagi ya. Pada bagian II dari tutorial ini, anda sudah membuat window untuk menampilkan game. Tapi, masalahnya adalah tidak ada grafik atau gambar yang ditampilkan pada layar.

Sebelum beranjak ke situ, anda juga sudah mengetahui jika sebuah komponen java.awt.Canvas akan merepresentasikan area persegi yang kosong dan dapat digunakan untuk menampung grafik-grafik tersebut.

Oleh sebab itu, pembahasan kali ini adalah mengenai Canvas terlebih dahulu. Jadi kita akan menampilkan gambar atau grafik seperti player, background, dan lain-lain melalui Canvas nantinya.

Dengan kata lain anda akan menggambar semuanya pada objek Canvas. Kemudian, setelah semua grafik selesai digambar, maka gambar tersebut akan disimpan pada frame. Selanjutnya, anda bisa melihat grafik tersebut melalui layar. Seperti inilah dasar cara kerja program yang harus anda pahami sebenarnya.

Oke, lanjut koding lagi.

Berikut ini adalah kode program untuk class GameDisplay, setelah di update dengan Canvas dan pengaturannya.

package com.bahasajava.gamejava.gamedisplay;

import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JFrame;

public class GameDisplay {
    
    private JFrame frame;//sebagai container komponen lainnya
    
    private int lebar, tinggi;//dalam ukuran piksel
    private String judul;
    
    private Canvas canvas;//Untuk meletakkan gambar atau grafik
    
    //Constructor
    public GameDisplay(String judul, int lebar, int tinggi){
        this.judul = judul;
        this.lebar = lebar;
        this.tinggi = tinggi;
        
        buatGameDisplay();//Memanggil method buatGameDisplay();
    }
    
    private void buatGameDisplay(){
        frame = new JFrame(judul);//Mengatur judul
        frame.setSize(lebar, tinggi);//Mengatur ukuran lebar dan tinggi window
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//Agar window di close sempurna
        frame.setResizable(false);//Agar ukuran window tidak bisa di ubah
        frame.setLocationRelativeTo(null);//Agar window berada ditengah layar
        frame.setVisible(true);//Agar window terlihat saat ditampilkan
        
        canvas = new Canvas();//Membuat objek canvas
        
        //Memilih ukuran canvas yang sesuai dengan ukuran lebar dan tinggi frame
        canvas.setPreferredSize(new Dimension(lebar, tinggi));
        
        //Untuk selalu menjamin ukuran kanvas sesuai yang diinginkan
        canvas.setMaximumSize(new Dimension(lebar, tinggi));
        canvas.setMinimumSize(new Dimension(lebar, tinggi));
        
        //Hanya untuk menguji jika canvas telah ditambahkan dengan menambahkan background warna merah
        canvas.setBackground(Color.red);//Nanti hapus lagi baris kode ini ya!!!
        
        frame.add(canvas);//Menambahkan canvas ke dalam frame
        
        //Agar window pas sesuai dengan ukuran yang diinginkan atau dipilih
        //sehingga bisa melihat ukuran canvas secara keseluruhan
        frame.pack();
        
    }
}

Pada line 37 sampai 41, anda akan melihat pengaturan ukuran Canvas harus menggunakan class Dimension. Jadi anda tidak bisa secara sederhana hanya memasukkan nilai variabel lebar dan tinggi seperti pada JFrame untuk mengatur ukurannya. Dalam kasus ini adalah objek Dimension adalah anonymous objek. Class Dimension ini akan mengenkapsulasikan lebar dan tinggi dari suatu komponen dalam satu objek tunggal.

Anda kemudian bisa menuju ke class Main dan mengeksekusi lagi program ini.

Berikut ini adalah tampilan window game yang anda buat dengan canvas yang memiliki background merah.



Warna background merah itu hanya untuk menguji saja jika canvas sudah ditempatkan dalam frame, anda bisa menghapus kode di line 4 dan 44 untuk menghilangkan warna background tersebut.

Membuat Class Yang Memegang Kode Dasar Game


Selanjutnya, anda bisa membuat satu class yang sangat penting karena class ini yang memegang kode dasar dari game seperti memulai, menjalankan, menghentikan game, dan sebagainya.

Buat satu class dalam package com.bahasajava.gamejava dan beri nama class tersebut Game.


class Game java Netbeans


Class game ini akan membutuhkan objek GameDisplay. Jadi kita perlu membuat variabel instance dari class GameDisplay dari pada class Game.

Berikut ini adalah kode pada class Game:

package com.bahasajava.gamejava;

import com.bahasajava.gamejava.gamedisplay.GameDisplay;

public class Game {
   private GameDisplay gameDisplay;
   
   public int lebar, tinggi;
   
   public Game(String judul, int lebar, int tinggi){
       this.lebar = lebar;
       this.tinggi = tinggi;
       //objek gameDisplay memiliki konstruktor dengan parameter
       //judul, lebar, dan tinggi, jadi semua parameter ini harus terpenuhi
       gameDisplay = new GameDisplay(judul, lebar, tinggi);
   }
}

Jadi, ketika objek Game ini diinisialisasi maka kita menginginkan agar objek gameDisplay (lihat line 15) di tampilkan pada layar.

Oleh sebab itu, anda harus membuat objek Game ini pada class Main, yaitu ketika program mulai dieksekusi.

Berikut ini kode yang telah di update pada class Main:

package com.bahasajava.gamejava;

public class Main {
    //main method
    public static void main(String[] args) {
        new Game("My Java Game", 640, 360);
    }
    
}

Sekarang cobalah anda jalankan programnya, anda masih akan mendapatkan tampilan yang sama. Namun, sekarang objek dari class Game telah berperan untuk menampilkan window.

Ok, sampai di sini dulu ya. Pada tutorial berikutnya anda akan belajar menggunakan Threads dan memahami game loop, sebagai konsep penting untuk semua game.

Baca juga:
Bagian I
Bagian II

Share on Facebook
Share on Twitter
Share on Google+

Artikel Menarik Lainnya :