Sim, no Game Maker é possível criar objetos durante o jogo. E o melhor disso é que não pesa no source(engine). Separei uma lista de algumas funções básicas para poder usar esse recurso tão útil:
object_add() //Cria um objeto, você define uma id e depois aciona essa função. EX: objeto=object_add()
object_delete(id) //Deleta um objeto
object_event_add(id,ev_create,0,"código") //Adiciona um evento ao objeto
Na ultima função mostrada você adicionar um tipo de evento no argumento "Event Type", algum destes:- ev_alarm
- ev_animation_end
- ev_boundary
- ev_close_button
- ev_collision
- ev_create
- ev_destroy
- ev_draw
- ev_end_of_path
- ev_game_end
- ev_game_start
- ev_global_left_button
- ev_global_left_press
- ev_global_left_release
- ev_global_middle_button
- ev_global_middle_press
- ev_global_middle_release
- ev_global_press
- ev_global_release
- ev_global_right_button
- ev_global_right_press
- ev_global_right_release
- 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_joystick1_down
- ev_joystick1_left
- ev_joystick1_right
- ev_joystick1_up
- ev_joystick2_button1
- ev_joystick2_button2
- ev_joystick2_button3
- ev_joystick2_button4
- ev_joystick2_button5
- ev_joystick2_button6
- ev_joystick2_button7
- ev_joystick2_button8
- ev_joystick2_down
- ev_joystick2_left
- ev_joystick2_right
- ev_joystick2_up
- ev_keyboard
- ev_keypress
- ev_keyrelease
- ev_left_button
- ev_left_press
- ev_left_release
- ev_middle_button
- ev_middle_press
- ev_middle_release
- ev_mouse
- ev_mouse_enter
- ev_mouse_leave
- ev_mouse_wheel_down
- ev_mouse_wheel_up
- ev_no_button
- ev_no_more_health
- ev_no_more_lives
- ev_other
- ev_outside
- ev_right_button
- ev_right_press
- ev_right_release
- ev_room_end
- ev_room_start
- ev_step
- ev_step_begin
- ev_step_end
- ev_step_normal
- ev_trigger
- ev_user0
- ev_user1
- ev_user10
- ev_user11
- ev_user12
- ev_user13
- ev_user14
- ev_user15
- ev_user2
- ev_user3
- ev_user4
- ev_user5
- ev_user6
- ev_user7
- ev_user8
- ev_user9
Ja no argumento "Event Number" se usa um numero. Se você adicionou um alarme ou trigger coloque o número do alarme, senão deixe em zero.
object_event_clear(id,ev_create,0) //Apagar um evento
object_exists(id) //Checa se certo objeto existe
object_set_depth(id,depth) //Define a profundidade de um objeto
object_set_mask(id,mask) //Define a mascara
object_set_parent(id,parent) //Define um parent
object_set_persistent(id,true) //Define se é persistente ou não
object_set_solid(id,false) //Define se é sólido
object_set_sprite(id,true) //Define a sprite inicial
object_set_visible(id,false) //Define se é visivel
Veja esse exemplo que fiz:circulo=object_add()
object_event_add(circulo,ev_create,0,"scale=0; circle=0;maxscl=random_range(1,32);")
object_event_add(circulo,ev_draw,0,"if scale>maxscl/2 circle=1 if scale<maxscl then scale+=2 else instance_destroy()
draw_set_color(c_white)
draw_circle(x,y,scale,circle)")
instance_create(x,y,circulo)
Nesse exemplo criei uma explosão, bem simples não é? É muito importante saber disso para criar efeitos, daí não enchemos nosso jogo de objetos.
Nenhum comentário:
Postar um comentário