[Intermediate-advanced] Object_add
+8
zebrakelabu
Arif_IndoFuture
Agan
Riza_Farhandi
HaNIFU
Asuna
adityaandar
Kevin Blaze Coolerz
12 posters
Halaman 1 dari 2
Halaman 1 dari 2 • 1, 2
[Intermediate-advanced] Object_add
Fungsi object_add yg akan dibahas ini adalah untuk menambah object saat permainan berlangsung. Tidak seperti pemambahan object secara manual, kita harus membuat sebuah object, memberi nama object tsb, memberi sprite, dan memberi event & action/script
Dengan script yg akan di bahas nanti, kita akan mengenal lebih dalam soal object_add.
1. Object_add()
obj_new = object_add()
Membuat sebuah object, dengan obj_new sebagai ID / index.
2. Object_delete(ind)
object_delete(obj_new)
Menghapus obj_new.
3. Object_event_add(ind,evtype,evnumb,codestr)
ind = index / ID object
evtype = type event
evnumb = nomor event, atau sub bagian dari evtype
codestr = script, dalam bentuk string
-Berikut adalah daftar dari evtype
-Berikut adalah daftar dari evnumb
Contoh:
object_event_add(obj_new,ev_create,0,"nyawa=5 hp=100 maxhp=100")
Membuat event Create untuk obj_new, dengan isi script seperti di atas.
object_event_add(obj_new,ev_alarm,2,"nyawa -= 1")
Membuat event alarm2 untuk obj_new.
object_event_add(obj_new,ev_step,ev_step_end,"if nyawa < 0 game_end()")
Membuat event End Step untuk obj_new.
object_event_add(obj_new,ev_draw,0,"draw_text(x,y,'+string(argument0)+')")
Membuat event draw, menggunakan argument0 sebagai text
4. Object_event_clear(ind,evtype,evnumb)
object_event_clear(obj_new,ev_alarm,2)
Menghapus event yang di maksud pada obj_new.
5. object_set_sprite(ind,spr)
object_set_solid(ind,solid)
object_set_visible(ind,vis)
object_set_depth(ind,depth)
object_set_persistent(ind,pers)
object_set_mask(ind,spr)
object_set_parent(ind,obj)
Set atribut object. Untuk solid, visible, persistent, isi true/false. Contoh:
object_set_sprite(obj_new,sprite0)
object_set_solid(obj_new,true)
object_set_depth(obj_new,-1)
6. object_get_name(ind) = return nama object
object_get_sprite(ind) = return sprite object
object_get_solid(ind) = return object mana yg solid
object_get_visible(ind) = return object mana yg visible
object_get_depth(ind) = return depth object yg di maksud
object_get_persistent(ind) = return object mana yg persistent
object_get_mask(ind) = return mask object yg di maksud
object_get_parent(ind) = return nama parent object
7. object_exists(ind)
Cek apakah object yg di maksud itu ada / exists ?
8. object_is_ancestor(ind1,ind2)
Cek apakah parent dari ind2 adalah ind1
Note:
-Jika object sudah tidak terpakai, ada baiknya jika dihapus dari memory, dengan menggunakan fungsi object_delete(ind)
-Setelah membuat script object_add() beserta event-event nya, maka untuk create object yg telah dibuat, gunakan script ini:
Contoh (drop down menu):
1. Buat lah sebuah script, dngan nama sc_drop_menu
2. Copas script ini:
3. gunakan function sc_drop_menu(id,x,y,w,TextCol,ListCol,Bg1Col,Bg2Col,SelectBgCol,title,menu) pada Create event. Misal: (CREATE EVENT)
Dengan script yg akan di bahas nanti, kita akan mengenal lebih dalam soal object_add.
1. Object_add()
obj_new = object_add()
Membuat sebuah object, dengan obj_new sebagai ID / index.
2. Object_delete(ind)
object_delete(obj_new)
Menghapus obj_new.
3. Object_event_add(ind,evtype,evnumb,codestr)
ind = index / ID object
evtype = type event
evnumb = nomor event, atau sub bagian dari evtype
codestr = script, dalam bentuk string
-Berikut adalah daftar dari evtype
- evtype:
ev_create
ev_destroy
ev_step
ev_alarm
ev_keyboard
ev_mouse
ev_collision
ev_other
ev_draw
ev_keypress
ev_keyrelease
ev_trigger
-Berikut adalah daftar dari evnumb
- evnumb:
Untuk ev_keyboard, ev_keypress, dan ev_keyrelease:
ev_left_button
ev_right_button
ev_middle_button
ev_no_button
ev_left_press
ev_right_press
ev_middle_press
ev_left_release
ev_right_release
ev_middle_release
ev_mouse_enter
ev_mouse_leave
ev_mouse_wheel_up
ev_mouse_wheel_down
ev_global_left_button
ev_global_right_button
ev_global_middle_button
ev_global_left_press
ev_global_right_press
ev_global_middle_press
ev_global_left_release
ev_global_right_release
ev_global_middle_release
ev_joystick1_left
ev_joystick1_right
ev_joystick1_up
ev_joystick1_down
ev_joystick1_button1
ev_joystick1_button2
ev_joystick1_button3
ev_joystick1_button4
ev_joystick1_button5
ev_joystick1_button6
ev_joystick1_button7
ev_joystick1_button8
ev_joystick2_left
ev_joystick2_right
ev_joystick2_up
ev_joystick2_down
ev_joystick2_button1
ev_joystick2_button2
ev_joystick2_button3
ev_joystick2_button4
ev_joystick2_button5
ev_joystick2_button6
ev_joystick2_button7
ev_joystick2_button8
Untuk ev_other:
ev_outside
ev_boundary
ev_game_start
ev_game_end
ev_room_start
ev_room_end
ev_no_more_lives
ev_no_more_health
ev_animation_end
ev_end_of_path
ev_close_button
ev_user0
ev_user1
ev_user2
ev_user3
ev_user4
ev_user5
ev_user6
ev_user7
ev_user8
ev_user9
ev_user10
ev_user11
ev_user12
ev_user13
ev_user14
ev_user15
Untuk ev_step:
ev_step_normal
ev_step_begin
ev_step_end
Untuk ev_trigger:
Tentukan sendiri konstant yg kamu buat untuk mendefinisikan trigger yg kamu maksud.
Untuk ev_alarm:
mulai 0 sampai 11
Selain event diatas, kamu bisa isi 0.
Contoh:
object_event_add(obj_new,ev_create,0,"nyawa=5 hp=100 maxhp=100")
Membuat event Create untuk obj_new, dengan isi script seperti di atas.
object_event_add(obj_new,ev_alarm,2,"nyawa -= 1")
Membuat event alarm2 untuk obj_new.
object_event_add(obj_new,ev_step,ev_step_end,"if nyawa < 0 game_end()")
Membuat event End Step untuk obj_new.
object_event_add(obj_new,ev_draw,0,"draw_text(x,y,'+string(argument0)+')")
Membuat event draw, menggunakan argument0 sebagai text
4. Object_event_clear(ind,evtype,evnumb)
object_event_clear(obj_new,ev_alarm,2)
Menghapus event yang di maksud pada obj_new.
5. object_set_sprite(ind,spr)
object_set_solid(ind,solid)
object_set_visible(ind,vis)
object_set_depth(ind,depth)
object_set_persistent(ind,pers)
object_set_mask(ind,spr)
object_set_parent(ind,obj)
Set atribut object. Untuk solid, visible, persistent, isi true/false. Contoh:
object_set_sprite(obj_new,sprite0)
object_set_solid(obj_new,true)
object_set_depth(obj_new,-1)
6. object_get_name(ind) = return nama object
object_get_sprite(ind) = return sprite object
object_get_solid(ind) = return object mana yg solid
object_get_visible(ind) = return object mana yg visible
object_get_depth(ind) = return depth object yg di maksud
object_get_persistent(ind) = return object mana yg persistent
object_get_mask(ind) = return mask object yg di maksud
object_get_parent(ind) = return nama parent object
7. object_exists(ind)
Cek apakah object yg di maksud itu ada / exists ?
8. object_is_ancestor(ind1,ind2)
Cek apakah parent dari ind2 adalah ind1
Note:
-Jika object sudah tidak terpakai, ada baiknya jika dihapus dari memory, dengan menggunakan fungsi object_delete(ind)
-Setelah membuat script object_add() beserta event-event nya, maka untuk create object yg telah dibuat, gunakan script ini:
- Code:
if !instance_exists(obj_new) && object_exists(obj_new)
instance_create(x,y,obj_new)
Contoh (drop down menu):
1. Buat lah sebuah script, dngan nama sc_drop_menu
2. Copas script ini:
- Code:
dmid=argument0
xx=argument1
yy=argument2
w=argument3
col_txt1=argument4
col_list1=argument5
col_bg1=argument6
col_bg2=argument7
col_selBg=argument8
title=argument9
str=argument10
__objDM=object_add()
object_event_add(__objDM,ev_create,0,"
draw_set_font(noone)
title='"+string(title)+"'
str='"+string(str)+"'
str=string_replace_all(str,'|','#')
n=string_count('#',str)+1
if n>1
h=string_height(string_copy(str,0,string_pos('#',str)))
else h=string_height(str)
w="+string(w)+"
xx="+string(xx)+"
yy="+string(yy)+"
my=mouse_y-20
yy2=yy+h+4
myy=yy2+2+h
open=0
get=-1
col_txt1="+string(col_txt1)+"
col_txt2=col_txt1
col_list1="+string(col_list1)+"
col_list2=col_list1
col_bg1="+string(col_bg1)+"
col_bg2="+string(col_bg2)+"
col_selBg="+string(col_selBg)+"
col_selList=c_teal
col_selBg2=c_blue
col_selList2=c_teal
col_markBg = c_maroon
col_markList = c_white
")
object_event_add(__objDM,ev_step,ev_step_normal,"
my=mouse_y
yy2=yy+h+4
if mouse_x>xx && mouse_x <xx+w && mouse_y>yy && mouse_y< yy+h+4
if mouse_check_button_pressed(mb_left) open=!open
if mouse_x>xx && mouse_x <xx+w && mouse_y>yy2 && mouse_y< yy2+h*(n)+((n)*2)-2*(n-1)
&& open=1
{
for(i=0;i<=n;i+=1)
{
if mouse_y >= yy2+h*i+(2) && mouse_y < yy2+2+h*(i+1) {myy=yy2+2+h*i}
//else if (mouse_y >= yy2+h*(n+1)+(2) or mouse_y <= yy2) myy=-1
//myy=yy2+2+h*(n)
}
if mouse_check_button_pressed(mb_left)
{
for(i=0;i<=n-1;i+=1)
if mouse_y >= yy2+h*i+(2) && mouse_y < yy2+2+h*(i+1) {get=i+1} else
if mouse_y >= yy2+h*(n)+(2) get=i
}
} else myy=-1
")
object_event_add(__objDM,ev_draw,0,"
if open=0
{
draw_set_alpha(1)
draw_set_color(col_bg1)
draw_rectangle(xx,yy,xx+w,yy2,0)
draw_set_color(col_list1)
draw_rectangle(xx,yy,xx+w,yy2,1)
draw_set_color(col_txt1)
draw_text(xx+5,yy+2,title)
////////////////////draw triangle/////////////////////////
draw_set_color(col_markBg) draw_triangle(xx+w-2,yy+4,xx+w-2-8,yy+h,xx+w-2-16,yy+4,0)
draw_set_color(col_markList) draw_triangle(xx+w-2,yy+4,xx+w-2-8,yy+h,xx+w-2-16,yy+4,1)
}
else
if open=1
{
draw_set_alpha(1)
draw_set_color(col_bg1)
draw_rectangle(xx,yy,xx+w,yy+h+4,0)
draw_set_color(col_list1)
draw_rectangle(xx,yy,xx+w,yy+h+4,1)
draw_set_color(col_txt1)
draw_text(xx+5,yy+2,title)
//////////draw triangle/////////////////////
draw_set_color(col_markBg) draw_triangle(xx+w-2-8,yy+4,xx+w-2,yy+h,xx+w-2-16,yy+h,0)
draw_set_color(col_markList) draw_triangle(xx+w-2-8,yy+4,xx+w-2,yy+h,xx+w-2-16,yy+h,1)
draw_set_alpha(1)
draw_set_color(col_bg2)
draw_rectangle(xx,yy2,xx+w,yy2+h*n+(n*2)-((n-2)*2),0)
draw_set_color(col_list2)
draw_rectangle(xx,yy2,xx+w,yy2+h*n+(n*2)-((n-2)*2),1)
draw_set_color(col_txt2)
draw_text(xx+5,yy2+2,str)
if get!=-1
{
draw_set_alpha(0.5)
draw_set_color(col_selBg2)
draw_rectangle(xx+3,yy2+2+h*(get-1),xx+w-2,yy2+2+h*(get-1)+h,0)
draw_set_color(col_selList2)
draw_rectangle(xx+3,yy2+2+h*(get-1),xx+w-2,yy2+2+h*(get-1)+h,1)
}
if myy!=-1
{
draw_set_alpha(0.5)
draw_set_color(col_selBg)
draw_rectangle(xx+3,myy,xx+w-2,myy+h,0)
draw_set_color(col_selList)
draw_rectangle(xx+3,myy,xx+w-2,myy+h,1)
}
}
draw_set_alpha(1)")
if !instance_exists(__objDM) && object_exists(__objDM)
global.__dropmenu[dmid]=instance_create(xx,yy,__objDM)
3. gunakan function sc_drop_menu(id,x,y,w,TextCol,ListCol,Bg1Col,Bg2Col,SelectBgCol,title,menu) pada Create event. Misal: (CREATE EVENT)
- Code:
sc_drop_menu(1,10+140*0,10,140,c_black,c_red,c_teal,c_white,c_aqua,'Dropdown Menu','Menu1|Menu2')
sc_drop_menu(2,10+140*1,10,140,c_black,c_red,c_teal,c_white,c_aqua,'Dropdown Menu','Menu1|Menu2|Menu3')
sc_drop_menu(3,10+140*2,10,140,c_black,c_red,c_teal,c_white,c_aqua,'Dropdown Menu','Menu1|Menu2|Menu3|Menu4')
sc_drop_menu(4,10+140*3,10,140,c_black,c_red,c_teal,c_white,c_aqua,'Dropdown Menu','Menu1|Menu2|Menu3|Menu4|Menu5')
Terakhir diubah oleh Kevin Blaze Coolerz tanggal Sat 08 Jun 2013, 10:00, total 2 kali diubah
Re: [Intermediate-advanced] Object_add
good.Izin copy dan save ke harddisk ya :>
adityaandar- Newbie
-
Jumlah posting : 17
Points : 18
Join date : 19.02.13
Re: [Intermediate-advanced] Object_add
nice share, tapi aku jarang pake itu dan kurasa ga perlu amat
btw fungsi2 manipulasi resource secara on-the-fly semacam ini obsolete di GM studio
btw fungsi2 manipulasi resource secara on-the-fly semacam ini obsolete di GM studio
Asuna- Global Moderator
-
Jumlah posting : 1711
Points : 1901
Join date : 10.01.13
Re: [Intermediate-advanced] Object_add
Bentar mau dipraktekin dulu...
HaNIFU- Global Moderator
-
Jumlah posting : 689
Points : 858
Join date : 11.04.13
Lokasi : Surakarta
Re: [Intermediate-advanced] Object_add
jarang di gunakan sih tpi stidak ny kita tau cara pake & kegunaan nyAsuna wrote:nice share, tapi aku jarang pake itu dan kurasa ga perlu amat
btw fungsi2 manipulasi resource secara on-the-fly semacam ini obsolete di GM studio
silakanHaNIFU wrote:Bentar mau dipraktekin dulu...
seep, thxRiza_Farhandi wrote:Wah jadi nambah ilmu lagi nih...
Nice share...
Re: [Intermediate-advanced] Object_add
Btw fungsi ini bisa buat draw stuff and turn into interactive object ga ya ?
jadi tertarik ini...
jadi tertarik ini...
Agan- GM Beginner
-
Jumlah posting : 115
Points : 120
Join date : 06.05.13
Age : 31
Lokasi : Jakarta Barat
Re: [Intermediate-advanced] Object_add
@agan:
ini sama aja kyk object pada umum ny, tpi object yg ini di buat saat game berlangsung. jdi trgantung kmu ny sendiri, bisa atau gk mengolah object seperti yg kmu mau
ini sama aja kyk object pada umum ny, tpi object yg ini di buat saat game berlangsung. jdi trgantung kmu ny sendiri, bisa atau gk mengolah object seperti yg kmu mau
Re: [Intermediate-advanced] Object_add
waw, object yang dibuat di object Nice share, nambah ilmu lagi btw, ini yg di FB kemarin ya?
Re: [Intermediate-advanced] Object_add
@arif:
hehehe, thx
iy betul dan script yg ak buat itu lh yg ak bikin jadi extension KBC WinAPI Kit, untuk dropdown menu ny jdi open source deh
hehehe, thx
iy betul dan script yg ak buat itu lh yg ak bikin jadi extension KBC WinAPI Kit, untuk dropdown menu ny jdi open source deh
Re: [Intermediate-advanced] Object_add
ini adalah fungsi yang amat sangat jarang dipakai namun sangat ampuh (karena bisa bikin objek secara real time).
aku hanya pernah pake sekali dalam bikin game di GM-HTML5 dan gagal karena bug. aku submit bug nya ke mantis kemudian dibenerin ... yah kira2 0.5 tahun kemudian . kalo ga salah objectnya exist tapi set nya ga jalan semua (_set_sprite misalnya).
kemudian bug itu muncul lagi di Studio, dan akhirnya fungsi2 object ini diobsolete kan. kamu tetap masi bisa pakai di GM 8.1 kebawah.
menurutku ini termasuk intermediate-advanced kev. yang mau pakai harus bener2 mantap tahu tentang object, object id, instance, instance id dan perbedaannya.
and never forget to delete the object from memory
Re: [Intermediate-advanced] Object_add
bner om, jarang di pake tpi very useful
ak pke di game vike farm tpi gk bisa load game jdi trpaksa di buang fungsi object_add ny
juga ak buat jdi extension KBC WinAPI Kit, bisa di lihat script paling bawah, yg dropdown menu, itu salah satu ny
kalo masalah bug kyk ny msih ad, game gk bsa di load, tpi kalo di hubungkan dengan parent, kalo gk sih msih bisa load (udh ak coba)
awal ny sih emg mau tulis intermediate-advanced, tpi ok lh, ntar ak edit.
thanks om
ak pke di game vike farm tpi gk bisa load game jdi trpaksa di buang fungsi object_add ny
juga ak buat jdi extension KBC WinAPI Kit, bisa di lihat script paling bawah, yg dropdown menu, itu salah satu ny
kalo masalah bug kyk ny msih ad, game gk bsa di load, tpi kalo di hubungkan dengan parent, kalo gk sih msih bisa load (udh ak coba)
awal ny sih emg mau tulis intermediate-advanced, tpi ok lh, ntar ak edit.
thanks om
Re: [Intermediate-advanced] Object_add
Nice Share
Tapi Jarang Dipake Function object_add, Dll
Btw, Thx Bisa Nambah Ilmu
Tapi Jarang Dipake Function object_add, Dll
Btw, Thx Bisa Nambah Ilmu
Re: [Intermediate-advanced] Object_add
Kevin Blaze Coolerz wrote:@agan:
ini sama aja kyk object pada umum ny, tpi object yg ini di buat saat game berlangsung. jdi trgantung kmu ny sendiri, bisa atau gk mengolah object seperti yg kmu mau
Hmm...
Jadi Kira kira misalnya kita menggambar objek menggunakan mouse lalu objek tersebut menjadi interaktif bisa pake fungsi ini nga ?
Agan- GM Beginner
-
Jumlah posting : 115
Points : 120
Join date : 06.05.13
Age : 31
Lokasi : Jakarta Barat
Re: [Intermediate-advanced] Object_add
@GM Newbie:
thanks ak juga jarang pke
@agan:
di gambar?
bisa aja sih, mngkin kyk gini proses nya:
gambar > simpan hasil gambar dlm bentuk sprite/file > object_add() > kasih event draw dgn sprite yg tdi di buat
thanks ak juga jarang pke
@agan:
di gambar?
bisa aja sih, mngkin kyk gini proses nya:
gambar > simpan hasil gambar dlm bentuk sprite/file > object_add() > kasih event draw dgn sprite yg tdi di buat
Re: [Intermediate-advanced] Object_add
atau mungkin ngga perlu object_add, sediakan saja satu object kosong kemudian assign gambar yang baru ke object itu
Re: [Intermediate-advanced] Object_add
Sayangnya kalo pake object_add() atau changing resource lainnya, semua perubahan gak akan di save walau pake game_save() pun.
Setidaknya kalo mau save harus buat object ulang tiap dibutuhkan, terus isi objectnya bisa diambil dari file luar (ini).
Setidaknya kalo mau save harus buat object ulang tiap dibutuhkan, terus isi objectnya bisa diambil dari file luar (ini).
Re: [Intermediate-advanced] Object_add
seorang developer yang berpengalaman ga akan pernah menggunakan fungsi2 manipulasi resource seperti ini, karena ada cara lain yang lebih efektif dan efisien (meskipun keliatannya susah)
Asuna- Global Moderator
-
Jumlah posting : 1711
Points : 1901
Join date : 10.01.13
Re: [Intermediate-advanced] Object_add
cara ini juga bisazebrakelabu wrote:
atau mungkin ngga perlu object_add, sediakan saja satu object kosong kemudian assign gambar yang baru ke object itu
bisa di save kok, tpi cma sedikit, gk bsa bnyk". game vike farm ku dlu jga prnh ad masalah soal save game krna ak pke object_add(), akhir ny ak buang deh fungsi ini dari game nymeliaz99 wrote:Sayangnya kalo pake object_add() atau changing resource lainnya, semua perubahan gak akan di save walau pake game_save() pun.
Setidaknya kalo mau save harus buat object ulang tiap dibutuhkan, terus isi objectnya bisa diambil dari file luar (ini).
bisa pke cara yg seperti om zebrakelabu bilangAsuna wrote:seorang developer yang berpengalaman ga akan pernah menggunakan fungsi2 manipulasi resource seperti ini, karena ada cara lain yang lebih efektif dan efisien (meskipun keliatannya susah)
obj_tes.sprite_index=spr_gambar
obj_tes.image_speed=0.5
obj_tes.HP=100
Suparman- Newbie
-
Jumlah posting : 7
Points : 4
Join date : 12.08.13
Lokasi : Bumi
Re: [Intermediate-advanced] Object_add
^
post anda bisa dianggap junk kalo cuma gitu
post anda bisa dianggap junk kalo cuma gitu
Asuna- Global Moderator
-
Jumlah posting : 1711
Points : 1901
Join date : 10.01.13
Re: [Intermediate-advanced] Object_add
@suparman, memang object_add sudah agak advanced jadi kalo baru2 mulai develop game jangan dicoba dulu. ga perlu juga
Re: [Intermediate-advanced] Object_add
Bro, kalo object_get_name indnya di tulisa apa?
Zihad Rizky Edwin Fikri- GM Beginner
-
Jumlah posting : 409
Points : 431
Join date : 12.05.13
Age : 26
Lokasi : jaktim
Re: [Intermediate-advanced] Object_add
^
lihat point pertama:
lihat point pertama:
di isi obj_new kalo kamu pake obj_new utk object_add() nya1. Object_add()
obj_new = object_add()
Membuat sebuah object, dengan obj_new sebagai ID / index.
Halaman 1 dari 2 • 1, 2
Halaman 1 dari 2
Permissions in this forum:
Anda tidak dapat menjawab topik