9 de jan. de 2012

GMA - Objetos temporárias

Objetos temporárias
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