Sumbangan / Donate

Donate (Libery Reserve)


U5041526
Tampilkan postingan dengan label Pengetahuan. Tampilkan semua postingan
Tampilkan postingan dengan label Pengetahuan. Tampilkan semua postingan

Kamis, 10 Mei 2012

Game Maker - String Handling

1. Random Word in String
Digunakan untuk mengacak kata, misalnya: "Kevin", maka tulisan "Kevin" dapat diacak menjadi "Kevni", "Kvnie", dst, pokoknya diacak lah

var str_length,str_new,str_char,i1;
str_length=string_length(argument0)
str_new=""
i1=1
repeat (str_length)
{
str_char=string_char_at(argument0,i1)
str_new=string_insert(str_char,str_new,random(str_length))
i1+=1
}
show_message(string(str_new))

Argument0 adalah string, misalnya yaitu "Kevin"

2. String Reverse
Untuk me-reverse atau membalik string, misal: "Kevin" jadi "niveK", "Blaze" jadi "ezalB"


var str_length,str_new,i1,i2,str_char;
str_length=string_length(argument0);
str_new="";
i1=str_length;
i2=1;
repeat(str_length)
{
str_char=string_char_at(argument0,i1);
str_new=string_insert(str_char,str_new,i2);

i1-=1;
i2+=1;
}
show_message(str_new);


atau 

var i,str_new;

str_new="";

for(i=string_length(argument0);i>0; i-=1)
str_new+=string_char_at(argument0,i);

show_message(str_new);


3. String to Ascii Key
Untuk merubah kata atau string menjadi kode Ascii

var str_length,str_new,str_char,i1,i2;
str_length=string_length(argument0);
str_new="";
i1=1;
i2=0
repeat (str_length)
{
str_char=string_char_at(argument0,i1)
str_new=string_insert(string(ord(str_char)),str_new,i2)
i1+=1
i2+=3
}
show_message(str_new);

4. Encrypt dan Decrypt String
Untuk meng-encrypt dan meng-descrypt string
Argument0 adalah string yang mau di encrypt / decrypt
Argument1 adalah kode (berupa angka) untuk encrypt dan decryptnya (Jika kamu menggunakan angka 1 untuk meng-encrypt string, maka untuk mengdecryptnya gunakan angka 1 juga)

Encrypt:

var str_length,str_new,str_char,str_crypt,str_number,i1;
str_length=string_length(argument0)
str_new=""
i1=1
repeat (str_length)
{
str_char=string_char_at(argument0,i1)
str_crypt=real(ord(str_char)+argument1)

str_crypt+=round((sqr(i1)+(i1*13)
-75)-round(sqrt(abs(i1*16)))
/3)
str_new=string_insert(chr(str_crypt),str_new,
i1)
i1+=1
}
str_crypt=0
show_message(str_new);

Decrypt:
var str_length,str_new,str_char,str_crypt,str_number,i1;
str_length=string_length(argument0)
str_new=""
i1=1
repeat (str_length)
{
str_char=string_char_at(argument0,i1)
str_crypt=real(ord(str_char)-argument1)

str_crypt-=round((sqr(i1)+(i1*13)
-75)-round(sqrt(abs(i1*16)))
/3)
str_new=string_insert(chr(str_crypt),str_new,
i1)
i1+=1
}
str_crypt=0
show_message(str_new);


5. Membuat Random String
Untuk membuat string secara random.
Argument0 adalah panjang string yang mau dibuat
Argument1 adalah huruf hidup / vowel (a, i, u, e, o), jadi isi argument1 menjadi true bila ingin memulai string yang dibuat dengan huruf hidup, dan false untuk memulai string yang dibuat dengan huruf mati.

var str_new,str_vowel,str_char;
str_new=""
str_vowel=argument1
repeat (argument0)
{
    if (str_vowel==true)
    {
    str_vowel=false
    str_new=string_insert(choose('a','e','i','o','u'),str_new,argument0+1)
    }
    else
    {
        if (choose(1,2)==1)
        {
        str_char=choose('b','c','d','f','g','h','j','k','l','m')
        }
        else
        {
        str_char=choose('n','p','q','r','s','t','v','w','x','y','z')

        }
        str_new=string_insert(str_char,str_new,argument0+1)
        str_vowel=true
    }
}
show_message(str_new);


6. Huruf Kapital Setelah Spasi
Membuat huruf menjadi kapital sesudah spasi, contoh:
Argument0 nya disini dengan "kevin", huruf "k" nya tidak kapital

var i,text;

text="";
for(i=1; i
{
  if string_char_at(argument0,i-1)=="" || i=1
{

text+=string_upper(string_char_at(argument0,i));
}
else
{
text+=string_char_at(argument0,i);
}
}

show_message('I am '+text+' Blaze Coolerz')

Pada show_message, terdapat variable text, dan variable text nya kita isi dengan "kevin", maka hasilnya akan seperti ini, "I am Kevin Blaze Coolerz", tulisan "kevin" menjadi "Kevin".

7. Mereplace string secara random
Contoh: "Kevin", maka dari kata itu bisa di replace kata perkata nya tanpa mengurangi jumlah kata.
Argument0 adalah string yang mau di replace
Argument1 adalah persentasenya, 0 sampai 100

var i,chance,choice;

for (i=1; i
{
if floor(random(100))>100-
argument1 && string_char_at(argument0,i)!=" "
{
if string_char_at(argument0,i)=="a"
|| string_char_at(argument0,i)=="e"
|| string_char_at(argument0,i)=="i"
|| string_char_at(argument0,i)=="o"
|| string_char_at(argument0,i)=="u"
{
chance[0] = 8.17;
chance[1] = 12.70;
chance[2] = 6.97;
chance[3] = 7.51;
chance[4] = 2.76;
choice[0] = "a";
choice[1] = "e";
choice[2] = "i";
choice[3] = "o";
choice[4] = "u";

var r, a;

r = random(38.11);
a = -1;

do
{
a += 1;
r -= chance[a];
}
until (r < 0);

argument0=string_delete(argument0,i,1);
argument0=string_insert(choice[a],argument0,i);
}
else
{
chance[0] = 1.49;
chance[1] = 2.78;
chance[2] = 4.25;
chance[3] = 2.23;
chance[4] = 2.02;
chance[5] = 6.09;
chance[6] = 0.15;
chance[7] = 0.77;
chance[8] = 4.03;
chance[9] = 2.41;
chance[10] = 6.75;
chance[11] = 1.93;
chance[12] = 0.10;
chance[13] = 5.99;
chance[14] = 6.33;
chance[15] = 9.06;
chance[16] = 0.98;
chance[17] = 2.36;
chance[18] = 0.15;
chance[19] = 1.97;
chance[20] = 0.07;
choice[0] = "b";
choice[1] = "c";
choice[2] = "d";
choice[3] = "f";
choice[4] = "g";
choice[5] = "h";
choice[6] = "j";
choice[7] = "k";
choice[8] = "l";
choice[9] = "m";
choice[10] = "n";
choice[11] = "p";
choice[12] = "q";
choice[13] = "r";
choice[14] = "s";
choice[15] = "t";
choice[16] = "v";
choice[17] = "w";
choice[18] = "x";
choice[19] = "y";
choice[20] = "z";

var r, a;

r = random(61.91);
a = -1;
do
{
a += 1;
r -= chance[a];
}

until (r < 0);

argument0=string_delete(
argument0,i,1);
argument0=string_insert(choice[a],
argument0,i);chance[0] = 8.17;
}
}
}
show_message(argument0);


Disetiap script, terdapat funsgi Show_message(), kamu bisa merubah fungsi itu sesuai dengan kebutuhanmu.

Ok, sampai disini dulu, bila ada string handling yang lain, entar Saya update :D

Good Luck

*All script is not by Me, beberapa script dibuat oleh Rixeno

Senin, 16 April 2012

Menyesuaikan Ukuran Sprite Menggunakan Script

Pernahkah kita mengalami suatu masalah ketika kita ingin menyesuaikan image_xscale atau image_yscale suatu sprite / object, dan ukurannya sulit untuk dibuat ? Saya pernah :P
Ketika mau membuat sebuah balok yang jika diklik akan melakukan action, tetapi image_xscale & image_yscale nya tidak sama besar dengan sprite yang tergambar. Misalnya gini:

Ada sprite, ukurannya 100x100, dan spritenya di draw_sprite_stretched(sprite,sub img,x,y,200,200), sehingga spritenya akan tampak 2x lebih besar, yaitu 200x200, namun ketika di klik, hanya bagian tertentu yang melakukan action, yaitu pada wilayah 100x100 (karena itu image_xscale & image_yscale yang asli), jadi kita harus membuat image_xscale & yscale nya menjadi 200x200.

Jika ukurannya 2x lipat, tentu kita bisa menggunakan:
image_xscale = 2; image_yscale = 2

Ini akan membuat xscale dan yscale menjadi 200%. Jika diisi 3 berarti 300%, dst...

Tapi, bagaimana jika ukurannya tidak menentu? Seperti 326x402 ?
Bingungkan? Hehe...

Cara ini saya temukan sendiri, dan cara ini sangat sangat simpel, yaitu begini:

image_xscale = image_xscale*(ukuran baru) / (ukuran lama);
image_yscale = image_yscale*(ukuran baru) / (ukuran lama)

Jadi, ukuran baru adalah ukuran yang akan kita buat, seperti 200x200, dan 326x402 tadi. Dan ukuran lamanya yaitu ukuran asli spritenya, yaitu 100x100. Jadinya begini:

image_xscale = image_xscale*326 / 100;
image_yscale = image_yscale*402 / 100

Ok, mudah bukan? Jika masih bingung, silakan download file *.gmk nya DISINI

Semoga bermanfaat :D

Kamis, 29 Maret 2012

Cara Mengatasi Folder Yang is not accessible, access is denied

Setelah install ulang laptop, eh ternyata folder pribadi ku bermasalah, pas mau dibuka malah keluar pesan error "is not accessible, access is denied" X(
Sedikit terkejut, namun tak membuatku patah semangat, dengan berbagai cara saya lakukan untuk membuat folder tsb bisa dibuka kembali. Setelah googling, akhirnya ketemu juga caranya. Langsung saja:

1. Buka explorer, lalu menuju ke folder yang tidak bisa dibuka.
2. Pada menu bar, klik Tools, lalu pilih Folder Options
3. Pada Tab View, scroll ke paling bawah, dan hilangkan centrang pada Use Simple File Sharing (recommended)
4. Klik Ok
5. Lalu klik kanan pada folder yang tidak bisa dibuka
6. Pilih Properties
7. Pilih Tab Security, klik Advanced
8. Pilih Tab Owner, pilih Administrator, dan centrang Replace owner on subcontainer and object
9. Klik Apply, maka akan keluar pesan, klik Yes
10. Klik Ok untuk menutup properties
11. Sekarang buka folder yang tidak bisa dibuka, sekarang foldernya sudah bisa dibuka :D

Semoga cara ini bermanfaat bagi semuanya :D

Jumat, 02 Maret 2012

Mengenal Fungsi For Pada Game Maker

Fungsi for sangat efektif untuk melakukan suatu pengulangan, contohnya, kita ingin membuat sebuah variable yang nilainya 1 sampai 10, maka kode yang kita gunakan adalah ini:

var a;
for (a=0;a<11;a+=1)

Penjelasannya:
var a; meng-inisial kan sebuah variable, yaitu a
for(__;__;__) adalah sebuah statement dari fungsi for
a = 0; berarti a dimulai dari 0
a<11; berarti a kurang dari 11
a+=1 berarti a selalu bertambah 1, sampai a = kurang dari 11, yaitu 10

Jadi cara kerja dari fungsi for adalah seperti ini:

for(kondisi awal ; kondisi akhir ; proses menuju kondisi akhir) 
{
hasil
}

Perlu diketahui, pada "kondisi akhir", jangan menggunakan =, karena fungsi for tidak akan bekerja. Baiknya fungsi akhir menggunakan <= atau >= (butuh penambahan > atau <)

Semoga tulisan pendek ini bisa membuat teman-teman mengerti + paham dengan fungsi for :D

Selasa, 28 Februari 2012

Mengenal Resource Script Pada Game Maker

Pada kesempatan ini, saya akan membahas sedikit tentang script pada Game Maker.
Langsung saja. Buatlah sebuah script (tekan Ctrl+Shift+C), lalu ketik kode ini:

show_message(argument0)

Sekarang kita akan mengenal fungsi dari argument. Argument dimulai dari argument0, argument1, argument2... dsb, dan biasanya argument hanya sampai pada argument11 atau argument12. Jadi, perlu kita ketahui, bahwa argument itu dimulai dari 0 bukan 1.

Apa kegunaan argument dan bagaimana cara kerjanya?
Argument tentu sangat berguna, dengan menggunakan script dan bantuan argument, kita tidak perlu menggunakan kode yang sangat panjang dan membingungkan. Cara kerjanya pun sangat mudah, kita hanya perlu membuat script, lalu memasukan script tsb dalam action pada event objek kita.

Untuk lebih jelasnya, mari kita lanjut lagi.
Beri nama sc_mess untuk script tadi, lalu klik centrang hijau untuk menutup jendela script editor. Sekarang buat sebuah objek, lalu buat event key press spasi, dan masukan kode ini:

sc_mess('Bla bla bla')

Sekarang buat sebuah event key press A, lalu masukan kode ini:

sc_mess(Kesalahan)

Sekarang masukan objek nya dalam room dan play.
Jika kita menekan spasi, maka akan keluar pesan yang bertulisakan "Bla bla bla", sesuai dengan argument yang kita isi.
Tapi jika kita menekan tombol A, maka akan terjadi error, itu disebabkan karena argument yang kita masukan salah. Seharusnya kita memasukan argument0 dalam bentuk string, karena kita menggunakan fungsi show_message(). Kecuali jika kita membuat sebuah variable yang bernilai string, maka argument dapat diterima. Sebagai contoh, ikuti langkah ini:

Buat create event, lalu isi kode ini:

pesan = "Tes tes 1 2 3"

Lalu pada event key press A tadi, ganti jadi ini:

sc_mess(pesan)

Lalu jalankan gamenya, dan tekan tombol A, maka akan keluar pesan "Tes tes 1 2 3", sesuai dengan variable yang kita buat.

Sekarang kita buat sebuah script lagi, dan isi dengan kode ini:

draw_text(argument0,argument1,argument2)
atau jika ingin letak x nya sudah ditentukan, bisa menghilangkan argument0 nya, jadi seperti ini
draw_text(100,argument0,argument1) //x = 100, y dan text nya belum ditentukan. Bisa juga y nya yang kita tentukan, dan bisa juga teksnya, semuanya terserah sesuai dengan keinginan kita.
//ingat ! argument selalu dimulai dari 0, bukan 1
atau jika kita mau menggunakan variable untuk argumentnya, kita bisa membuatnya seperti ini:
xx = argument0
yy = argument1
teks = argument2
draw_text(xx,yy,teks)
//untuk ini, argumentnya boleh tidak urut, tapi biasakanlah untuk teratur, agar tidak bingung sendiri

Kita ambil kode yang pertama, yaitu draw_text(argument0,argument1,argument2)
Beri nama sc_draw, dan klik centrang hijau.

Lalu, pada objek tadi, buat draw event, dan masukan kode ini:

sc_draw(10,20,'Draw text')

Dan klik play, maka kita akan melihat tulisan "Draw text" pada koordinat x = 10, y = 20.
Sekarang coba kita masukan kode ini pada create event:

xx = room_width/2
yy = room_height/2
text = "testing testing tung"

Dan kita ubah kode pada event draw tadi, menjadi:

draw_set_halign(fa_center) //horizontal align nya di tengah / center
draw_set_valign(fa_center) //vertikal align nya di tengah / center
sc_draw(xx,yy,text)

Lalu klik play. Sekarang kira melihat tulisan "testing testing tung" pada tengah-tengah room, itu disebabkan kita menggunkan fungsi room_width/2, artinya lebar ruang dibagi 2, dan room_height/2 yang berarti tinggi ruang dibagi 2.

Dari contoh-contoh diatas, dapat kita ambil kesimpulan:
1. Script dapat digunakan lebih dari 1x dan dapat digunakan oleh semua objek. Dan tentunya script yang digunakan untuk action tidak lebih panjang dari kode fungsi aslinya.
2. Argument pada script bisa menggunakan variable, dan argumentnya dapat kita tentukan sendiri.
3. Maksimal argument yang digunakan sesuai dengan argument pada fungsi yang kita gunakan sendiri.

Baiklah, pembahasan kita tentang script telah selesai, semoga teman-teman mengerti dan paham mengenai script :D

Rabu, 22 Februari 2012

Membuat Extension Game Maker

Ok, kali ini kita akan belajar membuat Extension untuk Game Maker.
Pertama, bukalah aplikasi Game Maker, dan buat sebuah script.

Untuk contoh, kita akan mencoba untuk membuat fungsi show_message() dan get_string(), namun kita akan menyingkat nama fungsinya menjadi show_msg() dan get_str().

Lanjut... Masukan kode ini pada scriptnya:


#define show_msg
pesan = argument0
show_message(pesan)

#define get_str
str = argument0
def = argument1
get_string(str,def)


Tanda #define berarti nama eksternal yang akan kita gunakan untuk membentuk show_msg() dan get_str(). Dan biarkan kode tsb seperti itu, walaupun Game Maker menandainya sebagai kesalahan.

Sekarang klik centrang, dan kita ekspor scriptnya, caranya klik menu Scripts dan pilih Exports Selected Script. Beri nama dan save.

Setelah itu, buka Extension Maker, lalu klik Add GML lalu buka file yang tadi di ekspor, kemudian pada kotak Function, klik Add, dan ketik show_msg pada nama nya, dan ketik show_msg(str) pada help line nya. Lalu pada argument, isi angka 1.

Dan klik Add lagi untuk get_str, pada kotak nama isi get_str, pada help line ketik get_str(str, def), dan isi 2 untuk argumentnya.


Maksud dari argument = 1 adalah terdapatnya 1 perintah, yaitu untuk mengisi str, dan argument = 2 yaitu untuk mengisi str, dan def. Tapi jika mau argumentnya bebas tanpa batas, atau argumentnya tidak teratur banyaknya, bisa menggunakan Arbitrary.



Penjelasan lainnya:
Name: Nama fungsinya
External name: ini yang terdapat pada script yang tadi kita buat, yang ada #define nya, kalau nama external name dan namenya sama, maka external name tidak perlu disini.
Help line: ini adalah garis bantu yang terdapat pada bagian bawah script editor ketika kita menulis script, maka dengan ini user tahu argument apa saja yang harus diisi.

Note: untuk kotak isian Folder, tidak perlu diubah.

Sekarang save extensionnya, dan build extensionnya, caranya klik menu File, dan pilih Build Package.

Kemudian, buka Game Maker, dan install extensionnya.


Dan cobalah untuk menggunakan functionnya, caranya buat sebuah event key press spasi, dan isi kode ini:

show_msg("Waahhh")
get_str("Testiing","0101")














Sekarang kamu punya kode yang lebih singkat dibanding kode milik Game Maker :D

Semoga tulisan-tulisan diatas bisa bermanfat :)

Bagi yang belum punya Extension maker, bisa didownload DISINI

Minggu, 19 Februari 2012

Membuat Animasi Air Menggunakan Game Maker Sprite Editor

Sekarang kita akan membuat animasi air menggunakan sprite editor yang ada pada Game Maker.
Pertama buka Game Makernya, lalu buat sebuah sprite, dengan ukuran 300x100 (panjang x lebar)

Kemudia kita klik warna biru untuk airnya (terserah mau biru muda atau biru tua), dan ubah Opacity nya menjadi 100, lalu dengan menggunakan Tool Fill an Area, kita fill warna backgrounnya menjadi warna biru (dengan sedikit transparan)

(Klik Gambar untuk memperbesar ukuran gambar)















Lalu ubah lagi Opacity nya menjadi 255, dan pilih warna hitam, dan pilih tool untuk membuat lingkaran, dan pada kotak pilih Shape (pada tools box), pilih yang paling bawah (yang ke-3)

Sekarang kita buat lingkaran hitamnya berjajar diatas gambar, sehingga terlihat seperti gelombang air, kalau sudah akan terlihat seperti ini:

(Klik Gambar untuk memperbesar ukuran gambar)


















Sekarang klik Centang dan copy gambar tadi, lalu pastekan sebanyak 5 buah atau lebih, saya menggunakan 5 gambar untuk ini. Apabila opacity gambar yang dipaste tidak transparan, maka hapus warna birunya dan beri warna biru yang opacity nya sudah 100 lagi, sehingga semua gambar akan terlihat sama.

(Klik Gambar untuk memperbesar ukuran gambar)






















Sekarang klik gambar pertama (cukup di klik saja), lalu klik menu Transform pada menu bar, lalu pilih Shift (atau tekan Ctr+Alt+S) dan ikuti seperti gambar:

(Klik Gambar untuk memperbesar ukuran gambar)


















Untuk gambar kedua dan seterusnya, cukup tambahkan nilai kelipatan 40, jadi untuk gambar ke-2 Horizontalnya 80, gambar ke-3 horizontalnya 120, dst...

Jika berhasil, maka gambar akan berbentuk animasi air yang sudah bergerak kekanan, jika nilai horizontal bernilai Minus, maka gambar akan kekiri.

Kemudian langkah terakhirnya yaitu klik menu Images, lalu pilih Erase a Color (atau tekan Ctrt+Shift+E), lalu sesuaikan dengan gambar ini:

(Klik Gambar untuk memperbesar ukuran gambar)

















Kita akan menghapus warna hitam, maka kita pilih warnanya menjadi warna hitam.

Ini hasil sprite ku, download DISINI (tinggal load sprite pada Game Maker)

Dan selesailah tutorial ini, semoga bermanfaat :D

Jumat, 06 Januari 2012

Library Maker Dan Extension Maker

Berikut adalah aplikasi yang digunakan untuk membuat Library (*.lib) dan Extension (*.dll) pada Game Maker.

DOWNLOAD EXTENSION MAKER (Sudah terdapat Library Maker)

Untuk Extension Maker, silakan cek di post saya yang lainnya :D
Kali ini kita akan belajar cara membuat Library

Pertama, download dan extract file *.zip tsb. Lalu buka Library_Maker.exe.
Akan terlohat tampilan seperti berikut:



Coba kamu ikuti apa yang ada digambar.
Pada Code, isi kode ini:
if not variable_local_exists("xx"){variable_local_set("xx",0)} if not variable_local_exists("yy"){variable_local_set("yy",0)} if not variable_local_exists("dr"){variable_local_set("dr",0)} if mouse_check_button_pressed(mb_left)and position_meeting(mouse_x,mouse_y,self){ dr=1; xx=mouse_x-x; yy=mouse_y-y;} if mouse_check_button_released(mb_left) {dr=0;} if argument0=true{if dr=1{x=mouse_x-xx; y=mouse_y-yy;}} else {if dr=1{x=mouse_x; y=mouse_y}}

Sekarang coba add sebuah action lagi, beri nama Visible, hapus centrang pada Show "Relative", Argument Countnya 1, Argument0 diganti jadi Visible, dan Expressio diganti jadi Boolean, lalu masukan kode ini:

if argument0 = true then visible = true else visible = false



Buat sebuah Action lagi, lalu ikuti seperti gambar ini:



Lalu isi kode ini:

a = argument0
b = get_string('Enter the code here:','')
if b = a then
room_goto(argument1)
else show_message('Code is invalid')

Kamu bisa mengganti icon pada tiap actionnya, kamu bisa mengedit icon yang sudah ada menggunakan paint, lalu save as dengan extension *.bmp.

Sekarang coba kamu save dan taruh filenya di folder Lib pada Game Maker, dan jalankan Game Maker. Kamu akan melihat Tab tambahan yang bernama DnD Object.



Pada Action Drag and Drop object, kamu cukup memberikan actionnya pada Step event. Pada action Visible, kamu bisa memberikannya pada Create event, ataupun event Keypress, atau lainnya. Dan pada Action Goto Room, kamu bisa memberikannya pada event Keypress, lalu isikan code dengan kode yang kamu inginkan (anggap itu sebagai password / cheat), dan pada room, isi room tujuan mu.

Cukup sekian tutorial dariku, untuk Argument lainnya kamu bisa mencobanya sendiri.

Catatan:
*Argument selalu dimulai dengan Argument0, bukan Argument1.

Untuk hasil yang sudah jadi, silakan download DISINI

Selamat mencoba :)