Kamis, 02 Januari 2014

Tutorial gravitasi (Game platform)

sebelum memulai tutorialnya , yang harus kamu ketahui
- // adalah sebuah note/catatan yang hanya bisa digunakan dalam 1 baris alias tidak bisa digunakan dalam baris yang lebih dari satu.
ex =   //ini adalah catatan
- /* dan */ adalah sebuah not/catatan yang bisa digunakan dalam 1 baris atau lebih
  untuk mengawali note harus ditandai dengan /* dan untuk mengakhiri note harus ditandai dengan */
ex = /* ini adalah
            note
            yang keren */
- (-y) adalah bagian atas objek / room
-y adalah bagian bawah objek / room
- (-x) adalah bagian kiri objek / room
- x adalah bagian kanan objek/room
- (!) adalah sebuah script yang berfungsi sebagai tidak
ex = !place_free(x,y+1) {vspeed -=12;}
sesuai example diatas
! = tidak
place_free(x,y+1) = dibagian bawah objek tidak ada objek atau bebas.
{} = hasil
vspeed -= 12 = objek akan bergerak -12 / melompat
jika digabungkan = jika tempat dibagian bawah objek tidak bebas maka objek akan bergerak sebanyak (-12) .


Oke kita mulaikan tutorialnya
buat sprite namakan dengan spr_player untuk playernya
buat sprite lagi namakan dengan spr_wall untuk dindingnya/tanahnya

jika sudah buat 2 objek berikut
-obj_player dengan menggunakan sprite "spr_player"
-obj_wall dengan menggunakan sprite "spr_wall" jangan lupa dicentangkan solidnya

masuk pada obj_player
pada event step masukan kode berikut:
//Movement'
if keyboard_check(vk_left) && place_free(x-4,y) {x -= 4;}
if keyboard_check(vk_right)&& place_free(x+4,y){x+=4;}
if keyboard_check(vk_space) && !place_free(x,y+1) {vspeed -= 12;}

//Gravity
if place_free(x,y+1)
{
gravity = 0.7;
}
else
{
gravity = 0;
}

untuk yang basic movement bisa dilihat di tutorial sebelumnya . untuk yang !place_free anda bisa lihat penjelasannya di atas.
untuk yang di note gravity akan saya jelaskan
jadi jika tempat dibawah objek player bebas maka gravitasi adalah 0.7 atau obj_player akan jatuh
lainnya gravitasi adalah 0 atau objek_player tidak akan jatuh.

pada collision obj_wall
masukan kode berikut

vspeed = 0;

jadi script itu berfungsi untuk agar obj_player tidak akan menembus obj_wall jika menabraknya

terakhir buat saja room dengan obj_wall sebagai tanahnya dan taruh obj_player diatas
lalu run.

berhasil? coba kalian tekan spasi pada game tersebut. dia pasti akan melompat dan jatuh lagi . coba kalian tekan spasi pada saat obj_player lompat . hasilnya dia tidak akan lompat lagi. itulah fungsi script if !place_free
semoga scriptnya bisa dimengerti

terima kasih telah membaca postingan ini
anda tidak mengerti?
tulis di :
-@Lio_akatsuki
-Fanspage : Rollyart

admin L

Tidak ada komentar:

Posting Komentar