Deniec’s Weblog

Just another WordPress.com weblog

Tutorial September 15, 2007

deniec @ 7:22 am

C-script tutorial dance game
Berikut ini kita akan membahas code yang digunakan untuk membuat game dengan genre music seperti dancegame.
game ini cara permainannya adalah kita menyesuaikan waktu yang tepat antara respon jari kita dan instruksi dari komputer berdasarkan pada irama musik
nah tanpa panjang lebar kita mulai saja tutorial ini
pertama ketik
var video_mode = 7; // ukuran layar 800×600
var video_depth = 16; // 16 bit warna D3D mode
maksudnya adalah 800×600 = 7 merupakan ukuran resolusi monitormu jika ingin resolusi 1024×768 maka var video_mode = 8; begitu seterusnya. tanda// hanya merupakan suatu bantuan keterangan dari perintahsebelumnya.

pada game dance tentu kita memerlukan suatu skor..nah sebelum membuat suatu perintah skor maka akan kita buat variabel skor
ketik
var mx_score = 0;
var score = 0;
var hscore_hdl;
mx_score = 0 mengindikasikan skor maksimum saat pertama kali mulai main adalah 0 data ini nantinya kan berubah dan perubahan tersebut akan disimpan dalam file tersendiri. var score berarti skor saat pertama kali mulai main jadi sebaiknya tetap 0. hscore_hdl berarti pengaturan dari score itu sendiri.
tentu saat bermain kita perlu untuk mengubah sudut pandang kamera secara otomatis. maka perlu suatu variabel kamera
var wkkamera_run = 0;
var hit_wkkamera;
wkkamera_run adalah waktu kamera dan hit_wkkamera adalah saat perhitungan waktu kamera berpindah posisi.

dalam suatu game dance memerlukan suatu perhitungan waktu yang selaras dengan irama music dan timing yang tepat untuk memulai memencet tombol dan perintah yang muncul berikut kodenya.
var wk_run = 0;
var hit_wk;
var wkdance_run = 0;
var hit_wkdance;
var wktrance_run = 0;
var hit_wktrance;
var wktrance2_run = 0;
var hit_wktrance2;
var wktrance3_run = 0;
var hit_wktrance3;
var wktrance4_run = 0;
var hit_wktrance4;
var wktrance5_run = 0;
var hit_wktrance5;
var wktrance6_run = 0;
var hit_wktrance6;
var wktrance7_run = 0;
var hit_wktrance7;
var wktrance8_run = 0;
var hit_wktrance8;
var wktrance9_run = 0;
var hit_wktrance9;
var wktrance10_run = 0;
var hit_wktrance10;

var wktrance11_run = 0;
var hit_wktrance11;
dilanjutkan hingga
var wktrance196_run = 0;
var hit_wktrance96; seterusnya tergantung dari durasi musik yang digunakan.

oh ya dalam suatu game dibutuhkan suatu level yaitu tempat dimana suatu game akan berjalan
string idance_wmb = <DanceXtra.wmb>;

tentu dibutuhkan efek suara agar suatu game terlihat bagus maka tambahkan perintah berikut
sound good_snd = <good.wav>;
sound bonus_snd = <yeah.wav>;
sound bad_snd = <bad.wav>;
sound miss_snd = <miss.wav>;
sound bep_snd = <bep.wav>;
sound ok_snd = <ok.wav>;

untuk huruf yang digunakan melalui
font wk = <waktu.bmp>, 23, 33;
font wkdance = <waktu.bmp>, 23, 33;
font wktrance = <waktu.bmp>, 23, 33;
font sscore_font = <score.pcx>, 50, 48;
font mscore_font = <mscore.pcx>, 25, 24;
font m2score_font = <score2.pcx>, 50, 48;

untuk gambar kodenya
bmap start = <start.pcx>;
bmap howtoplay = <howtoplay.pcx>;
bmap hscore = <hscore.pcx>;
bmap exit = <exit.pcx>;
bmap backb = <backb.pcx>;
bmap hskor = <hskor.pcx>;
bmap bonus = <bonus.pcx>;
dan seterusnya.

Nah sebelum suatu game dimuali tentu memerlukan suatu menu disini akan kita buat menunya
panel menudance_pan
{

layer = 12;
button = 540, 230, start, start, startb, mulaidance, null, null;
button = 400, 328, howtoplay, howtoplay, howtoplayb, bantuan , null, null;
button = 480, 387, hscore, hscore, hscoreb, hiskor, null, null;
button = 560, 485, exit, exit, exitb, keluar, null, null;
flags = overlay, refresh;
}
Layer berarti lapis dari game ini semakin tinggi layer berari akan menutupi layer sebelumnya
overlay berarti khusus warna hitam murni (0,0,0) maka dianggap tidak ada, apabila transparent maka tergantung tingkat alphanya. semakin tinggi alphanya maka akan semakin opaque

Nah berikut untuk perintah waktunya

panel hscore_pan
{
layer = 6;
pos_x = 0;
pos_y = 0;
digits = 10, 540, 8, mscore_font, 1, mx_score;
digits = 200, 50, 8, sscore_font, 1, score;
flags = refresh, visible;
}

panel hiskor_pan
{
bmap = hskor;
layer = 14;
pos_x = 0;
pos_y = 0;
digits = 180, 280, 8, m2score_font, 1, mx_score;
button = 32, 470, back, back, backb, kembali, null, null;
flags = refresh, d3d, overlay;
}

panel wk_pan
{

layer = 1;
pos_x = -30;
pos_y = 200;
digits = 60, 40, 4, wk, 1, hit_wk;
flags = d3d, overlay, refresh;
}

panel scorename_pan
{

bmap = scorename_map;
layer = 1;
pos_x = 248;
pos_y = 5;
flags = visible, overlay, refresh;

}
panel hscorename_pan
{

bmap = hscorename_map;
layer = 1;
pos_x = 48;
pos_y = 510;
flags = visible, overlay, refresh;

}
untuk memulai permainan baik jika kita menggunakan mouse nah disini kita kan gunakan maouse
///////////////////////////
function init_mouse()
{
mouse_map = cursor_pcx;
mouse_mode = 2;
while (1)
{
mouse_pos.x = pointer.x;
mouse_pos.y = pointer.y;
wait (1);
}
}
BERIKUT ADALAH PERINTAH UTAMA DARI GAME INI SENDIRI DAN SANGAT PENTING
function main()
{
intro_pan.visible = on;
sleep(4);
media_loop(“dance.mid”,null,100);
sleep(2);
init_mouse();
intro_pan.visible = off;
startmenu_pan.visible = on;
menudance_pan.visible = on;
hscore_hdl = file_open_read(“hscore.dat”);
mx_score = file_var_read (hscore_hdl);

}

function mulaidance()

{
media_loop(“dance.mid”,null,0);//BACKGROUND MUSIK UNTUK MAIN MENU
media_play(“musik.mp3″,null,200);//BACKGROUND MUSIK SAAT PERMAINAN
play_sound ok_snd, 100;
mouse_mode = 0;
startmenu_pan.visible = off;
menudance_pan.visible = off;
fps_max = 50;
level_load (idance_wmb);
wait (2);
score = 0;
sw_kamera();
sw_kamera3();
sw_kamera4();
sw_kamera5();
sw_kamera6();
sw_kamera7();
sw_kamera8();
sw_kamera9();

zkx();
ssx();
trc();
trc2();
trc3();
trc4();
trc5();
trc6();
trc7();
setelah itu perlu dberikan fungsi tersendiri dari setiap perintah dan tombol yang akan disesuaikan dengan timing kita

function trc4()
{
sleep(8);
hit_wktrance4 = 190;
if (wktrance4_run == 1) { return; }
wktrance4_run = 1;
while(1)
{
hit_wktrance4 -= 0.1;
wait(1);

if (hit_wktrance4 >= 188)
{

if (key_cur == on)
{
good2_pan.visible = on;
play_sound good_snd, 50;
wait(5);
good2_pan.visible = off;
play_sound good_snd, 0;
score += 2;
if (score > mx_score)
{
hscore_hdl = file_open_write(“hscore.dat”);
file_var_write (hscore_hdl, score);
file_close(hscore_hdl);
}
}

if (key_cuu == on)
{
play_sound miss_snd, 20;
miss_pan.visible = on;
wait(5);
play_sound miss_snd, 0;
miss_pan.visible = off;
score -= 1;
if (score > mx_score)
{
hscore_hdl = file_open_write(“hscore.dat”);
file_var_write (hscore_hdl, score);
file_close(hscore_hdl);
}
}

if (key_cul == on)
{
play_sound miss_snd, 20;
miss_pan.visible = on;
wait(5);
play_sound miss_snd, 0;
miss_pan.visible = off;
score -= 1;
if (score > mx_score)
{
hscore_hdl = file_open_write(“hscore.dat”);
file_var_write (hscore_hdl, score);
file_close(hscore_hdl);
}
}

if (key_cud == on)
{
play_sound miss_snd, 20;
miss_pan.visible = on;
wait(5);
play_sound miss_snd, 0;
miss_pan.visible = off;
score -= 1;
if (score > mx_score)
{
hscore_hdl = file_open_write(“hscore.dat”);
file_var_write (hscore_hdl, score);
file_close(hscore_hdl);
}
}
}

}

}

fungsi ini terdiri dari 192 fungsi silakan dibuat seperti diatas dengan penyesuaian peningkatan nilai waktu.
oh ya kita perlu menonaktifkan tombol berikut
on_f1 = null;
on_f2 = null;
on_f3 = null;
on_f4 = null;
on_f5 = null;
on_f6 = null;
on_f7 = null;
on_f8 = null;
on_f9 = null;
on_f10 = null;
on_f11 = null;
on_f12 = null;
terakhir akan kita buat perintah dari kamera

view kamera5
{
layer = 10;
pos_x = 0;
pos_y = 0;
}

action kameras5
{
my.invisible = on;
my.passable = on;
kamera5.x = my.x;
kamera5.y = my.y;
kamera5.z = my.z;
kamera5.pan = my.pan;
kamera5.tilt = my.tilt;
kamera5.roll = my.roll;
}
function sw_kamera5()
{
sleep(105);
kamera4.alpha = 100;
kamera5.alpha = 0;
camera.transparent = on;
kamera5.transparent = on;
kamera5.size_x = screen_size.x;
kamera5.size_y = screen_size.y;
kamera5.visible = on;
while (kamera4.alpha > 5)
{
kamera4.alpha -= 2 * time;
kamera5.alpha += 2 * time;
wait (1);
}
kamera4.visible = off;
kamera5.transparent = off;
}

Nah itu saja terima kasih atas perhatiannya tutorial berikutnya InsyaAllah akan menyusul , mungkin akan membahas tentang Action script yang diguanakn dalam macromedia flash player. trims

 

Leave a Reply