Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: nonoroman en Abril 20, 2021, 11:08:41 PM

Título: SECUENCIAS???
Publicado por: nonoroman en Abril 20, 2021, 11:08:41 PM
Buenas, pues estoy probando las Secuencias de la version 2.

Se mueve muy facil y todo muy bonito, pero...... Cuando termina la Secuencia, como se sale de ella??? Por ejemplo, para entra en otra Sala???

???

Saludos!!!
Título: Re: SECUENCIAS???
Publicado por: nonoroman en Mayo 26, 2021, 10:26:43 PM
Bueno, parece ser que nadie sabe como funciona las sequences???  :-[
Título: Re: SECUENCIAS???
Publicado por: Void en Mayo 27, 2021, 06:24:16 AM
Puedes usar la función layer_sequence_get_headpos() para ver en que posición esta la secuencia, una vez llega a la posición que quieres ejecutas el código que quieres:   

[gml]if layer_sequence_get_headpos(Sequence_id) >= 150 {
   room_goto_next()
}[/gml]



Alternativamente, puedes hacer que la secuencia transmita un mensaje en la posición en que quieres ejecutar el código:

(https://i.imgur.com/OIlrhS5.png)

Luego en el evento Broadcast Message colocas el código que ocupas que corra cuando la secuencia envia el mensaje:

[gml]if event_data[? "event_type"] == "sequence event"{
   switch (event_data[? "message"]){
      case "Finish":
           room_goto_next();
         break;
   }
}[/gml]



También podrías simplemente poner un objeto al final de la secuencia que tenga el código que quieres usar:

(https://i.imgur.com/ppi35py.png)



Finalmente, puedes agregar un "momento" a la secuencia, en el que se ejecutará una función de script previamente definida:

(https://i.imgur.com/MgA40Zj.png)

Con la funcion de script ejecutando el código que necesitas:

[gml]/// @function change_room();
function change_room(){
   room_goto_next();
}[/gml]
Título: Re: SECUENCIAS???
Publicado por: nonoroman en Mayo 27, 2021, 04:08:41 PM
Ok, muy buena explicación. Pues voy a probarlo, supongo que con algún método daré  con la tecla.

Es que esta función no la había utilizado antes, creo que es nueva en la versión 2 sino me equivoco.

Muchas gracias. Saludos. 😉

Cita de: Void en Mayo 27, 2021, 06:24:16 AM
Puedes usar la función layer_sequence_get_headpos() para ver en que posición esta la secuencia, una vez llega a la posición que quieres ejecutas el código que quieres:   

[gml]if layer_sequence_get_headpos(Sequence_id) >= 150 {
   room_goto_next()
}[/gml]



Alternativamente, puedes hacer que la secuencia transmita un mensaje en la posición en que quieres ejecutar el código:

(https://i.imgur.com/OIlrhS5.png)

Luego en el evento Broadcast Message colocas el código que ocupas que corra cuando la secuencia envia el mensaje:

[gml]if event_data[? "event_type"] == "sequence event"{
   switch (event_data[? "message"]){
      case "Finish":
           room_goto_next();
         break;
   }
}[/gml]



También podrías simplemente poner un objeto al final de la secuencia que tenga el código que quieres usar:

(https://i.imgur.com/ppi35py.png)



Finalmente, puedes agregar un "momento" a la secuencia, en el que se ejecutará una función de script previamente definida:

(https://i.imgur.com/MgA40Zj.png)

Con la funcion de script ejecutando el código que necesitas:

[gml]/// @function change_room();
function change_room(){
   room_goto_next();
}[/gml]
Título: Re: SECUENCIAS???
Publicado por: nonoroman en Junio 01, 2021, 10:14:05 PM
Vale, funciona, ya lo voy entendiendo. Lo que no tengo claro es si hay que destruir o eliminar la secuencia una vez finalizada su tarea. Y si es así, como sería??

:-[

Cita de: Void en Mayo 27, 2021, 06:24:16 AM
Puedes usar la función layer_sequence_get_headpos() para ver en que posición esta la secuencia, una vez llega a la posición que quieres ejecutas el código que quieres:   

[gml]if layer_sequence_get_headpos(Sequence_id) >= 150 {
   room_goto_next()
}[/gml]



Alternativamente, puedes hacer que la secuencia transmita un mensaje en la posición en que quieres ejecutar el código:

(https://i.imgur.com/OIlrhS5.png)

Luego en el evento Broadcast Message colocas el código que ocupas que corra cuando la secuencia envia el mensaje:

[gml]if event_data[? "event_type"] == "sequence event"{
   switch (event_data[? "message"]){
      case "Finish":
           room_goto_next();
         break;
   }
}[/gml]



También podrías simplemente poner un objeto al final de la secuencia que tenga el código que quieres usar:

(https://i.imgur.com/ppi35py.png)



Finalmente, puedes agregar un "momento" a la secuencia, en el que se ejecutará una función de script previamente definida:

(https://i.imgur.com/MgA40Zj.png)

Con la funcion de script ejecutando el código que necesitas:

[gml]/// @function change_room();
function change_room(){
   room_goto_next();
}[/gml]
Título: Re: SECUENCIAS???
Publicado por: Void en Junio 02, 2021, 07:51:10 AM
Las secuencias no se destruyen automáticamente al llegar a su cuadro final, dependiendo del comportamiento que se le ha dado se quedaran en su cuadro final, se regresaran a su cuadro inicial y empezaran de nuevo, o se ejecutaran en reversa hasta llegar al punto inicial y volverán a empezar.

Es a criterio propio cuales secuencias se deben eliminar y cuales pueden seguir existiendo. Para eliminarlas se puede usar la función layer_sequence_destroy():

[gml]
if layer_sequence_is_finished(Sequence_id)
   layer_sequence_destroy(Sequence_id)[/gml]
Título: Re: SECUENCIAS???
Publicado por: nonoroman en Junio 02, 2021, 08:56:55 AM
Muchas gracias, lo pruebo. Por cierto, y para crear por código una secuencia que no se encuentra en la room??

???
Título: Re: SECUENCIAS???
Publicado por: Void en Junio 02, 2021, 11:26:05 AM
Para crear secuencias con código se usa layer_sequence_create():

[gml]layer_sequence_create(Layer_ID,x,y,Sequence_ID)[/gml]

Como consejo, si vas a seguir experimentando con secuencias deberías empezar por el manual

layer_sequence_create (https://manual-es.yoyogames.com/index.htm#rhsearch=layer_sequence_create&rhhlterm=layer_sequence_create&t=GameMaker_Language%2FGML_Reference%2FAsset_Management%2FRooms%2FSequence_Layers%2Flayer_sequence_create.htm&ux=search)
Capas de Sequencia (https://manual-es.yoyogames.com/index.htm?rhhlterm=layer_sequence_create#t=GameMaker_Language%2FGML_Reference%2FAsset_Management%2FRooms%2FSequence_Layers%2FSequence_Layers.htm)
El Editor de Secuencias (https://manual-es.yoyogames.com/index.htm?#rhsearch=secuencias&t=The_Asset_Editors%2FSequences.htm&ux=search)
Título: Re: SECUENCIAS???
Publicado por: nonoroman en Junio 02, 2021, 11:54:43 AM
Muchas gracias. Si, si el manual fue lo primero que mire, pero esta super mal estructurado y explicado.

O al menos, eso me ha parecido.