Home > Java, Slick2D > Tutorial Game Programming part 5

Tutorial Game Programming part 5


  1. Revisi Kelas Swordman
    1. Tambahkan method blocked pada kelas Swordman.java


      Method blocked akan mengembalikan nilai true bila nilai dari tile pada attribute currentMap sesuai posisi x dan y bernilai tidak sama dengan 0, ini berarti bahwa tile tersebut sudah berisi suatu nilai atau variable.

    2. Pastikan bahwa method tryMove anda sama dengan kode program berikut


      Method trymove ini akan melakukan pengecekan apakah tile yang akan kita lalui di block atau tidak, bila di blok maka nilai dari x dan y pada kelas Swordman tidak akan diubah dan sebaliknya

  1. Samakan method update anda dengan kode program berikut


    Kode program yang ditebali adalah method update akan dipanggil ketika hasil dari method dari tryMove bernilai true.

  1. Revisi kelas Mission1.java

    Pastikan urutan dari kode program pada method init sama dengan kode program berikut


  1. Revisi method addSprite pada kelas RPGMap.java


    Kode program yang ditebali gunanya untuk mendaftarkan posisi tile di peta

  2. Kelas Battle.java

    Tambahkan 1 buah kelas dengan nama Battle.java di paket rpg

    1. Import


    2. Tambahkan 1 buah kelas dengan nama Battle.java, kelas ini nantinya akan kita gunakan untuk berpindah dari screen peta ke screen battle. Jadikan kelas ini turunan dari BasicGameState


    3. Deklarasikan field dibawah ini


      1. Field background digunakan untuk menampilkan gambar background yang sudah kita dapatkan dari hasil printscreen
      2. STATE_ID

        Digunakan sebagai penanda atau ID dari state ini, bermanfaat ketika perpindahan antar screen

      3. PARENT

        Digunakan untuk menandai screen sebelum screen ini muncul, bermanfaat untuk kembali ke screen sebelumnya

      4. playerUnits

        Referensi objek untuk menyimpan sprite swordman

      5. enemyUnits

        Referensi objek untuk menyimpan sprite dari musuh

      6. playerX,player,enemyX,enemy

        Digunakan untuk menentukan posisi dimana sprite swordman dan grey stroll akan dirender

      7. screenWidth

        Digunakan untuk menyimppan ukuran layar

    4. Tambahkan 2 buah method static berikut


      1. Method setEnemyUnits digunakan untuk melakukan pengesetan field enemyUnits
      2. Method setPlayerUnits digunakan untuk melakukan pengesetan field playerUnits.
    5. Override method getID


      Digunakan untuk memberikan nilai kembalian dari method getID, dimana nilai kembaliannya diambil dari STATE_ID

    6. Method Init


    Digunakan untuk melakukan load image battle1.png dan membaca ukuran screen kemudian ukuran screen disimpan di screenWidth

     

     

     

     

     

     

     

     

     

    1. Method initBattle


      Mengatur konfigurasi awal posisi dari tiap sprite atau karakter berdasarkan ukuran layar

    2. Method render


      Digunakan untuk melakukan drawing terhadap playerUnits dan enemyUnits apabila kedua field tersebut tidak bernilai null, posisi berdasarkan nilai X dan Y yang sudah kita dapatkan dari method initBattle

    3. Method update


      Membaca inputan keyboard dari user, kemudian memindahkan posisi pemain 1 langkah mundur, kosongkan variable enemyUnits dan playerUnits lalu kembalikan screen ke luar dari battle.

  3. EventAction.java

    Tambahkan 1 buah interface dengan nama EventAction dipaket rpg


    Kelas ini berisi 1 buah abstract method bernama doAction untuk menangkap suatu event yang nantinya akan kita oleh perintahnya sesuai event yang terjadi.

  4. BlinkMessage.java

    Kelas blinkmessage di paket rpg digunakan untuk menampilkan pesan yang kedip2. J.

    1. Tambahkan 1 buah kelas dengan nama BlinkMessage dipaket rpg


    2. Import yang anda butuhkan


    3. Contruktor yang harus dibuat


Keempat constructor diatas dibuat dengan tujuan agar kelas BlinkMessage dapat digunakan sesuai dengan kebutuhan

 

 

 

  1. Tambahkan settet dan getter untuk attribut


  2. Method render


    Pesan dari kelas blinkMessage akan ditampilkan bila nilai dari visible adalah true dan show adalah true

  1. Methd update


    Pergantian antara proses muncul dan menghilangnya message akan dipengaruhi oleh nilai i yang dijumlahkan ke attribute sumUpdate

    Pemanggilan method doAction juga akan dilaksanakan di method ini

  2. Metod hideMessage


    Digunakan untuk menghilangkan atau menyembunyikan message

  1. Kelas BlinkMessageCollection
    1. Buat kelas blink message collection yang merupakan turunan dari HashMap di paket rpg


    2. Import yang dibutuhkan


    3. Deklaraasikan attribute berikut


      Digunakan untuk menyimpan objek EventAction

  1. Constructor


    Tambahkan 2 buah constructor diatas, konstruktor default dibutuhkan bila action memang tidak akan diisi

  2. Overload method put dengan 2 buah method put yang baru


    Method put pertama digunakan bila action belum didefinisikan atau sudah didefinisikan melalui konstruktor, method put kedua bila action didefinisikan ketika method put ini dipanggil.

  3. Method render


    Method ini digunakan untuk merender semua blinkMessage yang terdaftar di kelas BlinkMessageCollection

  4. Method update


    Method ini digunakan untuk mengupdate semua blinkMessage yang terdaftar di kelas BlinkMessageCollection

  1. Method hideAllMessage


    Digunakan untuk menghiden semua message

  1. Interface Rule.java

    Interface ini digunakan untuk melakukan standarisasi Rule di game


  2. Kelas MainMenu

    Digunakan untuk membuat main menu di kanan atas, buat di paket rpg.ui

    1. Kelas Main Menu


      Kelas ini mengimplementasikan EventAction

    2. Import


  1. Attribut


    1. Attribut dengan type image untuk menyimpan image yang hendak di load
    2. X dan y adalah posisi dari menu ini
    3. Show menandakan apakah item statusnya muncul atau tidak
    4. menuItem adalah daftar text yang hendak ditampilkan di menu item
    5. menuItems adalah daftar menu item yang nantinya akan dibuat berdasarkan menuItem
  2. Constructor


Digunakan untuk load image dan inisialisasi objek menuItems berdasarkan judul menu item yang sudah ditentukan diawal

  1. Render


  1. ImageClick


    Digunakan untuk mengetahui apakah suatu image sedang di klik

  2. Method yang berhubungan dengan Click


    Proses menangkan event click, mengupdate tampilan ketika sudah di klik dan mendeteksi imageClick

  3. DoAction


    Digunakan untuk menangkap event yang terjadi

  1. Kelas MenuItem
    1. Kelas ini digunakan untuk menampilkan menu item, buat di paket rpg.ui


    2. Import yang anda butuhkan


    3. Constructor


      Konstructor pada kelas menu item meminta isian text, x, y, width,dan height sebagai suatu nilai yang harus sudah ditentukan diawal

    4. Setter dan getter


  1. Method update


    Digunakan untuk melakukan pengecekan dan menjalankan aksi berdasarkan kondisi yang sudah ditentukan

  2. Render


    Digunakan untuk menggambar kotak bila mouse berada diatas menu

  3. MouseOver


    Digunakan untuk melakukan pengecekan apakah mouse berada diatas suatu menu atau tidak

  1. Kelas Dialog (paket rpg.ui)

    Kelas ini digunakan untuk memunculkan dialog yang nantinya dibutuhkan di game

    1. Kelas Dialog


    2. Import yang dibutuhkan


    3. Attribut yang harus dideklarasikan


      1. Attribute dengan type Image digunakan untuk menyimpan image
      2. Visible dan mouseOver digunakan untuk menyimpan status
      3. Title dan buttonText digunakan untuk menampilkan text
      4. X,y, buttonX, buttonY digunakan untuk meyimpan koordinat
    4. Constructor


      Digunakan untuk inisialisasi objek dan mengukur posisi yang dibutuhkan untuk melektakkan image

    5. Setter dan getter


    6. Method render


      Digunakan untuk menulis judul dari dialog, tombol tutup dan mengganti ganti tombol yang hendak ditampilkan

    7. imageClick


    Digunakan untuk mendeteksi apakah mouse berada diatas image atau tidak

  1. Update


Digunakan untuk mengupdate status mouse dan mendeteksi apakah mouse ditekan atau tidak

  1. Kelas DialogCamp1

    Buat di paket rpg.ui


    Digunakan untuk membuat window camp1

  2. Kelas Mission1Rule.java

    Digunakan untuk menyimpan aturan atau rule yang berjalan di dalam game

    1. Kelas


      Kelas ini mengimplementasikan interface Rule dan EventAction

    2. Import yang dibutuhkan


  1. Attribut yang harud didefinisikan


    1. Swordman

      Digunakan untuk menyimpan objek swordman

    2. messageCollection

      Digunakan untuk menyimpan objek message

    3. spacePress

      Digunakan untuk mengidentifikasikan bahwa spasi ditekan atau tidak

    4. greyTroll1

      Digunakan untuk menyimpan objek greyTroll1

    5. dialogCamp1

      Digunakan untuk menyimpan dialog

  2. Construktor yang dibutuhkan


Digunakan untuk melakukan inisialisasi objek swordman dan messageCollection serta meregister pesan yang hendak dimunculkan

  1. Method init


    Digunakan untuk inisialisasi objek dialogCamp1

  2. Setter


    Digunakan sebagai setter objek greyTroll1 dan spacePress

  3. Render


    Digunakan untuk merender messageCollection dan dialogCamp1

  4. Update


Digunakan untuk memunculkan pesan, menghilangkan pesan dan melakukan transisi ke battle mode

  1. doAction


    Memunculkan dialog diCamp1

  1. Kelas Mission1
    1. Tambahkan 2 buah attribute berikut


    2. Tambahakn kode program berikut pada method init


    3. Tambahkan kode program berikut pada method render


    4. Tambahkan kode program berikut pada method update


    5. Override method


      Digunakan untuk menangkap input

  2. Kelas StateManagement


    Menambahkan screen Battle di game

Categories: Java, Slick2D
  1. Rudi
    January 27, 2011 at 2:25 am

    pak,, sy sdh mencoba dr materi2 sampai materi 5. tp ad bberapa klas d pket rpg dan rpg.ui yg msh slah. Slah stunya kls batle, mgkn sy yg kurng teliti. mhon koreksinya pk.

    • ratnokustiawan
      January 27, 2011 at 3:02 am

      ya nanti ngopi aja sourcecode nya yang sudah lengkap

  2. March 24, 2013 at 4:36 pm

    pak saya boleh minta source+library nya juga ? kalo boleh kirimin ke email saya pak.. saya pingin belajar, hehe … game ini bisa dibuat multiplayer pak ? mohon tutorialnya.. trimakasih sebelumnya..🙂

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: