Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: ILV_CG-GM en Diciembre 24, 2010, 01:32:38 AM

Título: event perform(ev_collision,?)
Publicado por: ILV_CG-GM en Diciembre 24, 2010, 01:32:38 AM
hola a todos  :D, estoy haciendo un script en el cual utilizo las funciones event_perform para hacer eventos, pero pra eso es necesario colocar el tipo de evento y el numb correspondiente.. yo puse: event_perform(ev_step,ev_step_end)
image_angle=direction
  esto me funciono, pero cuando puse:
event_perform(ev_collision,pared_obj)
speed = 0
  no me di? ningun resultado, ni siquiera un error
  y cuando pongo el evento keyboard de este modo:
event_perform(ev_keyboard,vk_up)
speed = 5
  funciona, pero como si fuera del evento step_normal  :'(.. alguna sugerencia??
Título: Re: event perform(ev_collision,?)
Publicado por: Texic en Diciembre 24, 2010, 02:27:45 AM
En cuanto al evento de colisi?n, q raro porq a mi me funciona. En el numb ten?s q poner la colision con qu? objeto para especificar, aunq supongo q hiciste eso. Y el del teclado, ten?s tambi?n event_perform(ev_keypress,vk_up)
No s? si era eso a lo que te refer?s. Te dejo ejemplo para mostrarte q el de llamar al evento colision funciona
Título: Re: event perform(ev_collision,?)
Publicado por: ILV_CG-GM en Diciembre 24, 2010, 03:00:15 AM
hola texic, disculpa mi ignorancia pero no entendi muy bien tu ejemplo, entendi algo asi: cuando la instancia(object1) es creada, en el evento collision con object2 no pasa nada y en el evento collision con object2 muestra un mensaje, en el room esta solo object1, entonces como hace para colisionar con object2?
yo el script lo puse en step, talves tenga algo que ver con eso  :-[
Título: Re: event perform(ev_collision,?)
Publicado por: Texic en Diciembre 24, 2010, 04:03:28 AM
Lo q pasa es q llam?s al evento, no sucede realmente. Yo lo llam? desde el create al c?digo q est? en el evento de colision con el objeto2. No importa si est? colisionando o no, la funci?n ejecuta el evento igual
Título: Re: event perform(ev_collision,?)
Publicado por: ILV_CG-GM en Diciembre 24, 2010, 07:46:33 PM
ahh, ya entendi.. el problema es que estoy llamando a los eventos pero no hay nada en ellos.. yo pense q tambien podia agregar acciones a los event_perform  XD.. no hay manera de hacerlo, no?... de cualquier manera gracias x la info
Título: Re: event perform(ev_collision,?)
Publicado por: Texic en Diciembre 24, 2010, 08:08:56 PM
Con object_add_event, te dejo un ejemplo q justo us? recien en mi juego:
[gml]object_event_add(a,ev_step,ev_step_normal,"image_index=0; if mouse_x>x and mouse_x<x+sprite_width and mouse_y>y and mouse_y<y+sprite_height{if mouse_check_button(mb_left) {image_index=1}}")[/gml]
Título: Re: event perform(ev_collision,?)
Publicado por: ILV_CG-GM en Diciembre 24, 2010, 08:58:58 PM
 ;D buenisimo, parece un poco complicado pero en cuanto tenga tiempo le echo una mano.. muchisimas gracias, salu2
Título: Re: event perform(ev_collision,?)
Publicado por: ILV_CG-GM en Diciembre 27, 2010, 05:49:08 AM
hola texic, el script de object_event_add me funciono, pero tengo algunas dudas:
1- en la parte donde pide ind va el nombre de la instancia?
2- si pongo, por ejemplo, en evtype (ev_create), en donde va evnumb, pongo cualquier numero o tengo que poner el nombre del objeto determinado?
3- en donde va el codestr coloco un script o puedo hacer uno en ese espacio?
si las pudieras responder te agradeceria mucho  :) salu2
Título: Re: event perform(ev_collision,?)
Publicado por: Texic en Diciembre 27, 2010, 08:25:27 AM
Bien, en la parte donde pide inde pon?s el nombre del objeto, no puede ser a una instancia en espec?fico lamentablemente, pero pod?s agregar el evento a todas las instancias del objeto y con el codestr filtrar la instancia a la que quer?s referirte poniendo "if id=100002 {codigo}" o similares, siempre bas?ndote en el id de la instancia. Si pusieras ev_create no necesit?s especificar nada en evnumb, pod?s poner 0 y listo. En codestr se pone el c?digo a a?adir al evento, todo en una cadena de texto. Pod?s hacer que desde el texto se llame al script poniendo "script0()"
Suerte :)

PD: Dejo ejemplo para ayudar a acelerar la digesti?n
Título: Re: event perform(ev_collision,?)
Publicado por: ILV_CG-GM en Diciembre 27, 2010, 08:09:10 PM
 :D muchas gracias texic, me aclaraste todas mis dudas  XD.. te agradesco mucho por la info, los ejemplos y todos los aportes, segui asi.. salu2  :)