Sumbangan / Donate

Donate (Libery Reserve)


U5041526

Minggu, 11 Maret 2012

Game Maker - Membuat Extension Menggunakan *.dll

Pada kesempatan ini, Saya akan berbagi informasi tentang cara membuat extension menggunakan file *.dll (Dynamic Link Library)
Ok, pertama kita download dulu filenya (Berisi file LED.dll, Example.gm6, LED.gex, LED.ged, readme.txt). Download DISINI

Sekarang buka example.gm6 menggunakan Game Maker, dan buka juga Extension Maker.

Pada game maker, lihat script led_initialize...

Scriptnya bertuliskan:

global.dllled_set=external_define("LED.DLL","press",1,0,1,0);
global.dllled_get=external_define("LED.DLL","get",1,0,1,0);

Pada kata yang saya bold & underline, yaitu press dan get, ialah external name dari file *.dll (LED.DLL). Dan external name inilah yang sangat kita butuhkan.

Dan lihat scriptnya lagi, ada angka 1,0,1,0

Keterangannya:


- Angka 1 yang pertama (urutan pertama dari kiri), atau pada calltype nya berarti "cdecl", 0 berarti "stdcall".
- Pada urutan ke-2, yaitu angka 0 atau pada restype, berarti "real", jika 1 berarti "string".
- Pada urutan ke-3, yaitu angka 1 atau argnumb, berarti banyaknya argument yang tersedia.
- Pada urutan paling kanan, yaitu 0 atau arg1type, berarti "real", jika 1 berarti "string".

Seharusnya itu tidak perlu dihafal, karena biasanya angka "1,0,1,0" ditulis "dll_cdecl, ty_real, 2, ty_real".

Sekarang kita lihat argument yang dipakai, buka object0, lalu lihat event keyrelease enter, terdapat kode:

led_push(1);
led_push(2);
led_push(3);

Maka argument nya yaitu angka.
Lalu lihat event keyrelease space, kita bisa melihat adanya kode ini:

led_get(1), led_get(2), dan led_get(3)

Itu artinya argument nya juga angka.
Dan bisa kita lihat pula bahwa:
led_get(1) berhubungan dengan Caps Lock
led_get(2) berhubungan dengan Num Lock
led_get(3) berhubungan dengan Scroll Lock

Maka kita ke Extension maker, dan Add DLL, lalu cari file LED.dll
Pada Function, klik Add, isi namanya terserah, saya menggunakan nama LED_press.
External name nya press (sesuai dengan script tadi).
Help line nya isi terserah, namun saya menggunakan ini LED_press(Number)

Pada Result Type (restype) isi seperti script tadi, yaitu 0 (Real)
Pada Calling Convention (calltype) isi seperti script tadi, yaitu 1 (Cdecl)
Pada Argument (argnumb) isi seperti script tadi, yaitu 1
Pada Argument Type (Arg1type) isi seperti script tadi, yaitu 0 (Real)

Lalu klik Add lagi, lalu isi datanya seperti script tadi.



Sekarang Save. Lalu beri nama, author, dan descriptionnya, lalu klik File > Build Package.

Usahakan save di tempat yang berbeda dengan file yang tadi di save, sehingga extensionnya bisa diedit lagi. Jika disimpan di 1 tempat, file editable nya (*.ged) akan ter-replace dengan file *.ged yang tidak bisa di edit.

Sekarang install extensionnya ke game maker, caranya pada Game Maker, klik menu Resource > Select Extension Packages, lalu klik Install, klik Install lagi dan pilih extension yang dibuild tadi.

Sekarang ganti kode pada object0:
Ganti led_push dengan LED_press.
Ganti led_get dengan LED_get.

Sekarang jalankan, jika berjalan lancar, maka extensionnya berhasil.
Tekan Enter untuk mengaktifkan Caps Lock, Numb Lock, dan Scroll Lock, dan tekan spasi untuk melihat lampu / LED mana saja yang menyala (1 = menyala, 0 = tidak)


Ok, sekian tutorial dari saya, untuk entri lain mengenai membuat extension, bisa KESINI untuk mempelajarinya :D

Semoga bermanfaat...