Hola gente de la comunidad :)  ¿Como están?, bueno, hoy vengo a pedirles ayuda de una tarea que tengo del colegio.
Estoy creando una aplicación que trata sobre algunos consejos, ayudas y cosas asi.
El caso es que en la room_Inicio existen varios objetos que se representan con iconos para cada sección. La idea es de que si por ejemplo yo escojo el icono que representa la sección "Salud" y luego se dirija a otra room donde ponga un sprite en el que diga el consejo, y de entre cierta cantidad de sprites con consejos se escoja una al azar.


PD: Espero de que me hayan entendido y me puedan ayudar.
PD2: pls, todo por tener una buena nota


Gracias  ;D

Si son sprites diferentes puedes usar la función choose, con 16 argumentos como máximo:
[gml]sprite_index = choose( spr1, spr2, spr3 );[/gml]

Si cada consejo es una sub-imágnenes de un sprite usa la función irandom:
[gml]
sprite_index = spr1;
image_index = irandom( image_number - 1 );
[/gml]

antes de la última linea que te dice clamud, añádele un

randomize();


para saltear la semilla (seed) de la aleatoriedad, sino siempre te aparecerá la misma imagen al principio!!
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

Bien, muchas gracias, pero es que tengo problemas, y es de que aun no conozco lo suficiente de GML, asi que porfa, si pueden podrian hacerme el gran favor de explicarlo mas detalladamente, refiriendo, por ejemplo en que evento va indicado este code, y tambien de que cual seria el code para que se cambie a la room.  :P

si tienes todos los sprites de los iconos cada uno en un sprite diferente:
[gml]randomize();
sprite_index = choose( spr1, spr2, spr3 );[/gml]
siendo spr1,spr2,spr3... etcétera el nombre de los sprites y se elegirá uno aleatoriamente de entre todos los que pongas (máximo 16)

pero si tienes un solo sprite "consejo" con muchas imágenes con los iconos, entonces pones:
[gml]sprite_index = spr1;
image_speed = 0;
randomize();
image_index = irandom( image_number - 1 );[/gml]

lo de sprite_index = spr1.. spr1 obviamente será el nombre del sprite que uses, aunque esta linea te la puedes ahorrar si la asignas al mismo objeto, lo demás, lo dejas talcual

y sobre dónde ponerlo... elijas cual elijas, en el evento create, para que se asigne una sola vez
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

Tengo entendido de que para poner un sprite con subimagenes, tiene que ser de que sea una sola imagen y la recorte con la opcion llamada "Create from strip", pero si por ejemplo yo no quiero hacer eso, o de que haciendo esa imagen seria demasiado grande, entonces ¿Que otros metodos existen para crear subimagenes?, aparte de hacerlas en el paint de sprites obviamente.

si importas un strip esa es la opción, o que el nombre de la imagen (Hablamos de algo externo) termine en _stripN.png  siendo "N" el número de subimágenes, todo en una fila que yo sepa, otra oción, si lo que pretendes es añadis imágenes externamente directamente por lo que hablas, usa la función sprite add... toma aquí un miniscript:
[gml]///sprite_set_external(path,imgnum,xorigin,yorigin)
/*
0 path
1 img num
2 origin x
3 origin y

ejemplo:
sprite_set_external(working_directory+"/sprites/spr_player.png",4,16,16);
*/

if file_exists(argument0)
{
    sprite_index = sprite_add(argument0,argument1,0,0,argument2,argument3);
}
[/gml]
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]