Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: kaliman777 en Enero 28, 2015, 06:03:34 PM

Título: Crear un objeto al azar
Publicado por: kaliman777 en Enero 28, 2015, 06:03:34 PM
Hola makeros:

Seré breve para que me entiendan:
Tengo en mi juego una cuadrícula de 5x3 con un objeto en cada una, llamados del O_1 al O_15

¿Cómo puedo programar que al hacer clic a un botón, uno de estos 15 objetos sean sustituido por dos objetos de la mitad del tamaño del original (ocupan su mismo espacio y se ven ambos por ser de su mitad). Es decir crear dos objetos y sustituir al anterior. Algo así:
Al iniciar el juego, tengo: 15 OBJETOS 1 AL 15
Al hacer clic: tengo 16 objetos y uno de los 15 fue destruido, PERO AL AZAR, no debo saber cuál será el sustituido.

Gracias, por su ayuda, un ejemplito, sería mil veces mejor.



Título: Re:Crear un objeto al azar
Publicado por: Clamud en Enero 28, 2015, 08:57:11 PM
¿Es necesario que los objetos sean diferentes?
Hice un ejemplo en el que 15 instancias de un objeto se transforman al azar en 2 instancias de otro objeto. La parte importante está en el evento (Mouse) Global Left Pressed:
[gml]
///Cambiar un objeto al azar

if( instance_number(ob0) > 0 ) //si hay instancias que transformar
{
    ds_list_clear( global.l ); //limpiar la lista
    with(ob0) ds_list_add( global.l, id ); //agregar id's a la lista
    ds_list_shuffle( global.l ); //desordenar lista
   
    with( ds_list_find_value(global.l,0) ) //con una instancia al azar
    {
        instance_create( x,y, ob1 ); //crear 2 instancias nuevas
        instance_create( x,y+16, ob1 );
        instance_destroy(); //destruirse
    }
}
[/gml]
¿Eso es lo que buscabas?
Título: Re:Crear un objeto al azar
Publicado por: kaliman777 en Enero 29, 2015, 02:39:29 PM
Hola Clamud: para empezar, tengo GM 8 PRO no me quiso abrir el archivo tuyo porque lo hiciste en GM 8.1
Es el mismo objeto, pero con diferentes subimágenes.
Sobre el engine: no quiero cambiar los 15 objetos por dos.
Solamente uno de los 15, los demás 14 siguen intactos.
Como si tuviera 15 frutas en una mesa y quito una de ellas y pongo dos más pequeñas en su lugar. Al final me quedan 14 de las originales más las dos pequeñas nuevas.

Gracias, estaré pendiente de ver si me ayudas un poco.
Título: Re:Crear un objeto al azar
Publicado por: Clamud en Enero 29, 2015, 09:19:36 PM
Entonces parece que si entendí bien, aquí está el ejemplo con formato de GM8.0

Yo lo hice transformando un sólo tipo de objeto, pero tú necesitas que sean diferentes tipos de objetos, el principio es el mismo, en vez de usar la variable id se usaría la variable object_index o se crearía un objeto padre, intenta hacerlo por ti, así aprenderás más rápido, si no te convence pregunta de nuevo, estaremos pendientes para ayudarte.
Título: Re:Crear un objeto al azar
Publicado por: kaliman777 en Enero 29, 2015, 09:47:56 PM
Cita de: Clamud en Enero 29, 2015, 09:19:36 PM
Entonces parece que si entendí bien, aquí está el ejemplo con formato de GM8.0

Yo lo hice transformando un sólo tipo de objeto, pero tú necesitas que sean diferentes tipos de objetos, el principio es el mismo, en vez de usar la variable id se usaría la variable object_index o se crearía un objeto padre, intenta hacerlo por ti, así aprenderás más rápido, si no te convence pregunta de nuevo, estaremos pendientes para ayudarte.

Muchas gracias amigo Clamud...estoy incorporando tu script a mi juego. Te aviso mas tarde cómo me fue.
Título: Re:Crear un objeto al azar
Publicado por: kaliman777 en Enero 29, 2015, 10:20:27 PM
Hola Clamud: Tu engine está muy cerca de lo que quiero, solo tuve un pequeño problema:

Los 15 objetos que no repitan sus image_index y si es posible que vayan en orden ascendente es decir que la subimage1 vaya antes de la 2 y así hasta la 15. Sin repetirse.

Aí te posteo un ejemplo con los sprites modificados. Te agradezco mucho que me tutoreees en este jueguito porque en eso de las Ds_list_create ando muy pobre.

Saludos y ahí reviso más tarde.