[Intermediate] Motion Planning
+5
zebrakelabu
Arif_IndoFuture
HaNIFU
Agan
Kevin Blaze Coolerz
9 posters
Halaman 1 dari 1
[Intermediate] Motion Planning
Motion planning / Perencanaan gerak membantu Anda untuk memindahkan kasus/kondisi tertentu dari lokasi tertentu ke lokasi yang berbeda sambil menghindari tabrakan dengan kasus tertentu lainnya (misalnya dinding). Perencanaan gerak adalah masalah yang sulit. Tidak mungkin untuk memberikan fungsi umum yang akan bekerja dengan baik dalam segala situasi. Juga, komputasi tabrakan gerakan bebas adalah operasi yg memakan waktu. Jadi, Anda harus berhati-hati bagaimana dan kapan Anda menerapkannya. Harap simpan pernyataan ini dalam pikiran ketika Anda menggunakan salah satu fungsi berikut.
Berbagai bentuk gerakan perencanaan disediakan oleh Game Maker. Bentuk paling sederhana memungkinkan sebuah contoh mengambil langkah menuju posisi tujuan tertentu, mencoba untuk pergi langsung jika memungkinkan tetapi mengambil arah yang berbeda jika diperlukan.
1. mp_linear_step(x,y,stepsize,checkall)
x,y = posisi yg di tuju
stepsize = berapa step kecepatan yg di tuju dalam 1 detik
checkall = jika True, maka object akan menghindari object solid yg mengahalangi
Contoh:
mp_linear_step(100,200,5,1)
Object menuju ke posisi 100,100 dengan kecepatan 5px per detik, dan menghindari semua object solid.
2. mp_linear_step_object(x,y,stepsize,obj)
sama saja dengan fungsi di atas, tapi yg di hindari bukan benda solid, melainkan object yg telah di tentukan.
Contoh:
mp_linear_step_object(100,200,5,obj_tembok)
Object menuju ke posisi 100,100 dengan kecepatan 5px per detik, dan menghindari semua obj_tembok.
3. mp_linear_path(path,xg,yg,stepsize,checkall)
Mungkin sama dengan mp_linear_step, tapi ini mengikuti jalan pada path yg telah di buat untuk menuju ke posisi tertentu (xg,yg).
Contoh:
- Buat lh sebuah path dengan nama path0, buat posisi awal = (32,32) dan posisi akhir = (320,32).
- Buat sebuah sprite, dgn ukuran 32x32, bentuk bebas
- Buat object dengan sprite tadi, dan dengan event + script:
---Create event: path_start(path0,3,0,0)
---Step event: mp_linear_path(path0,160,32,3,0)
- Masukan object dalam room dan Play
Hasilnya: object hanya berjalan sampai (160,32) walau path dibuat sampai (320,32).
Syarat fungsi ini agar work yaitu lokasi (xg,yg) yg di maksud harus melewati GARIS LURUS path. Karena kita menggunakan mp_linear_path, bukan mp_potential_path.
4. mp_linear_path_object(path,xg,yg,stepsize,obj)
Sama saja, hanya saja object menghindari object yg dimaksud. Lihat fungsi diatas dan fungsi mp_linear_step_object() sebagai contohnya.
5. mp_potential_step(x,y,stepsize,checkall)
Sama seperti mp_linear_step() Namun fungsi ini tidak BERGERAK LURUS menuju (x,y). Object akan bergerak bebas menuju posisi yg dituju.
6. mp_potential_step_object(x,y,stepsize,obj)
Tidak perlu di jelaskan, sama saja...
7. mp_potential_settings(maxrot,rotstep,ahead,onspot)
Ini untuk setting fungsi mp_potential_step, dimana kita bisa menyetel seberapa besar object itu berotasi (maxrot, defaultnya 30), seberapa cepat object itu berotasi (rotstep, defaultnya 10).
Memperbesar nilai maxrot akan menyebabkan path object menjadi berantakan, namun lebih cepat menemukan jalan pendek (short path). Jika di perkecil, ada kemungkinan object sulit menemukan posisi yang kamu inginkan (x,y), tapi akan terlihat lebih smooth gerakannya.
Memperbesar nilai rotstep memungkinkan object bergerak lebih kecil/sedikit dan menemukan goal lebih cepat. Dan sebaliknya jika rotstep di perkecil.
Ahead (default nya 3), pada saat object mulai berjalan, maka object akan bergerak lurus/straight terlebih dahulu, baru akan berubah arah / bergerak bebas. Memperkecil nilai ini, akan menyebabkan object lebih LAMA merubah arahnya, dan sebaliknya.
onspot (default nya True), pada saat object tidak bisa menemukan jalan yg dituju atau goal nya (mungkin terhalang oleh object lain, misal tembok), maka object akan berputar-putar di tempat. Ada baiknya jika nilai onspot di set menjadi False, agar object tetap diam saat tidak menemukan goal nya.
Contoh:
mp_potential_settings(30,10,5,false)
8. Untuk mp_potential_path() dan mp_potential_path_object(), sebenarnya sama saja dengan mp_linear_path(), namun fungsi ini lebih bebas gerakan & jalur path yg dituju (xg,yg), TIDAK LURUS saja seperti mp_linear_path()
Tetapi (xg,yg) harus melewati jalur path.
Baiklah, sementara ini fungsi-fungsi diatas dulu yg di bahas, jika memungkinkan saya akan meng-update fungsi lainnya, seperti mp_grid
Berbagai bentuk gerakan perencanaan disediakan oleh Game Maker. Bentuk paling sederhana memungkinkan sebuah contoh mengambil langkah menuju posisi tujuan tertentu, mencoba untuk pergi langsung jika memungkinkan tetapi mengambil arah yang berbeda jika diperlukan.
1. mp_linear_step(x,y,stepsize,checkall)
x,y = posisi yg di tuju
stepsize = berapa step kecepatan yg di tuju dalam 1 detik
checkall = jika True, maka object akan menghindari object solid yg mengahalangi
Contoh:
mp_linear_step(100,200,5,1)
Object menuju ke posisi 100,100 dengan kecepatan 5px per detik, dan menghindari semua object solid.
2. mp_linear_step_object(x,y,stepsize,obj)
sama saja dengan fungsi di atas, tapi yg di hindari bukan benda solid, melainkan object yg telah di tentukan.
Contoh:
mp_linear_step_object(100,200,5,obj_tembok)
Object menuju ke posisi 100,100 dengan kecepatan 5px per detik, dan menghindari semua obj_tembok.
3. mp_linear_path(path,xg,yg,stepsize,checkall)
Mungkin sama dengan mp_linear_step, tapi ini mengikuti jalan pada path yg telah di buat untuk menuju ke posisi tertentu (xg,yg).
Contoh:
- Buat lh sebuah path dengan nama path0, buat posisi awal = (32,32) dan posisi akhir = (320,32).
- Buat sebuah sprite, dgn ukuran 32x32, bentuk bebas
- Buat object dengan sprite tadi, dan dengan event + script:
---Create event: path_start(path0,3,0,0)
---Step event: mp_linear_path(path0,160,32,3,0)
- Masukan object dalam room dan Play
Hasilnya: object hanya berjalan sampai (160,32) walau path dibuat sampai (320,32).
Syarat fungsi ini agar work yaitu lokasi (xg,yg) yg di maksud harus melewati GARIS LURUS path. Karena kita menggunakan mp_linear_path, bukan mp_potential_path.
4. mp_linear_path_object(path,xg,yg,stepsize,obj)
Sama saja, hanya saja object menghindari object yg dimaksud. Lihat fungsi diatas dan fungsi mp_linear_step_object() sebagai contohnya.
5. mp_potential_step(x,y,stepsize,checkall)
Sama seperti mp_linear_step() Namun fungsi ini tidak BERGERAK LURUS menuju (x,y). Object akan bergerak bebas menuju posisi yg dituju.
6. mp_potential_step_object(x,y,stepsize,obj)
Tidak perlu di jelaskan, sama saja...
7. mp_potential_settings(maxrot,rotstep,ahead,onspot)
Ini untuk setting fungsi mp_potential_step, dimana kita bisa menyetel seberapa besar object itu berotasi (maxrot, defaultnya 30), seberapa cepat object itu berotasi (rotstep, defaultnya 10).
Memperbesar nilai maxrot akan menyebabkan path object menjadi berantakan, namun lebih cepat menemukan jalan pendek (short path). Jika di perkecil, ada kemungkinan object sulit menemukan posisi yang kamu inginkan (x,y), tapi akan terlihat lebih smooth gerakannya.
Memperbesar nilai rotstep memungkinkan object bergerak lebih kecil/sedikit dan menemukan goal lebih cepat. Dan sebaliknya jika rotstep di perkecil.
Ahead (default nya 3), pada saat object mulai berjalan, maka object akan bergerak lurus/straight terlebih dahulu, baru akan berubah arah / bergerak bebas. Memperkecil nilai ini, akan menyebabkan object lebih LAMA merubah arahnya, dan sebaliknya.
onspot (default nya True), pada saat object tidak bisa menemukan jalan yg dituju atau goal nya (mungkin terhalang oleh object lain, misal tembok), maka object akan berputar-putar di tempat. Ada baiknya jika nilai onspot di set menjadi False, agar object tetap diam saat tidak menemukan goal nya.
Contoh:
mp_potential_settings(30,10,5,false)
8. Untuk mp_potential_path() dan mp_potential_path_object(), sebenarnya sama saja dengan mp_linear_path(), namun fungsi ini lebih bebas gerakan & jalur path yg dituju (xg,yg), TIDAK LURUS saja seperti mp_linear_path()
Tetapi (xg,yg) harus melewati jalur path.
Baiklah, sementara ini fungsi-fungsi diatas dulu yg di bahas, jika memungkinkan saya akan meng-update fungsi lainnya, seperti mp_grid
Terakhir diubah oleh Kevin Blaze Coolerz tanggal Thu 27 Feb 2014, 09:06, total 1 kali diubah (Reason for editing : salah ketik)
Re: [Intermediate] Motion Planning
NIce Stuff...
Motion planning, good for tds..
Motion planning, good for tds..
Agan- GM Beginner
-
Jumlah posting : 115
Points : 120
Join date : 06.05.13
Age : 31
Lokasi : Jakarta Barat
Re: [Intermediate] Motion Planning
@agan:
iy, fungsi ini lebih bagus di terapkan di genre seperti maze & tds
kalo di platform bisa aja, tpi butuh bantuan gravity
iy, fungsi ini lebih bagus di terapkan di genre seperti maze & tds
kalo di platform bisa aja, tpi butuh bantuan gravity
Re: [Intermediate] Motion Planning
Oh udah dibuat to...
Aku pelajari dulu...
Thank... mas Kevin...
Aku pelajari dulu...
Thank... mas Kevin...
HaNIFU- Global Moderator
-
Jumlah posting : 689
Points : 858
Join date : 11.04.13
Lokasi : Surakarta
Re: [Intermediate] Motion Planning
Nice share lagi dan nambah ilmu lagi aku juga belom ngerti tentang Motion Planning, ini bisa untuk buat AI digame
Re: [Intermediate] Motion Planning
thanks omzebrakelabu wrote:nice share kev
seep, thxRiza_Farhandi wrote:Nice share...
Nambah ilmu lagi...
Ditunggu nih mp_gridnya...
ok, kalo ak udh bisa cara pake ny akan di share
Re: [Intermediate] Motion Planning
Yuppp...
hanya tinggal mp_grid aja yang masih membingungkan...
ane tunggu ya..
hanya tinggal mp_grid aja yang masih membingungkan...
ane tunggu ya..
Agan- GM Beginner
-
Jumlah posting : 115
Points : 120
Join date : 06.05.13
Age : 31
Lokasi : Jakarta Barat
Re: [Intermediate] Motion Planning
Nice Share
Aku Baru Tau Kalo Kepanjangan Dari MP Adalah motion_planning
Ditunggu mp_gridnya
Aku Baru Tau Kalo Kepanjangan Dari MP Adalah motion_planning
Ditunggu mp_gridnya
Re: [Intermediate] Motion Planning
move_towards_point sama kyk mp_linear_step
kalo mp_potential_step bisa mengelak object solid
kalo mp_potential_step bisa mengelak object solid
Re: [Intermediate] Motion Planning
Bro, ada yg kelupaan tuh, itu kecepatannya 5 px per step bukan per detik ahahahah
Zihad Rizky Edwin Fikri- GM Beginner
-
Jumlah posting : 409
Points : 431
Join date : 12.05.13
Age : 26
Lokasi : jaktim
Re: [Intermediate] Motion Planning
ini emang begitu apa salah ngetik gan?
mp_linear_step(100,200,5,obj_tembok)
Object menuju ke posisi 100,100 dengan kecepatan 5px per detik, dan menghindari semua obj_tembok.
mp_linear_step(100,200,5,obj_tembok)
Object menuju ke posisi 100,100 dengan kecepatan 5px per detik, dan menghindari semua obj_tembok.
Bastian- Newbie
-
Jumlah posting : 19
Points : 17
Join date : 27.02.14
Re: [Intermediate] Motion Planning
@bastian:
eh iya, salah lgi
ini yg bner:
mp_linear_step_object(100,200,5,obj_tembok)
eh iya, salah lgi
ini yg bner:
mp_linear_step_object(100,200,5,obj_tembok)
Similar topics
» [Intermediate-advanced] Object_add
» [Intermediate] ds_map
» [Intermediate] File Bin
» [Intermediate] Ds_stack
» [Intermediate] Ds_list
» [Intermediate] ds_map
» [Intermediate] File Bin
» [Intermediate] Ds_stack
» [Intermediate] Ds_list
Halaman 1 dari 1
Permissions in this forum:
Anda tidak dapat menjawab topik