Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: aggro en Diciembre 06, 2011, 05:33:25 PM

Título: Imagen aleatoria.
Publicado por: aggro en Diciembre 06, 2011, 05:33:25 PM
Hola ...

Tengo un objeto que utiliza un sprite con 4 im?genes distintas (distinto color cada una) pero mi idea es que use una de ellas de forma aleatoria al crearse ( para no crear 4 objetos distintos que cumplan la misma funci?n)
?habr? un c?digo para hacer eso?

De antemano GRACIAS !!!  :GM8:
Título: Re: Imagen aleatoria.
Publicado por: MaanuRP en Diciembre 06, 2011, 05:53:04 PM
No entendi bien. Quieres que en el room haya 4 instancias del mismo objeto pero con una subimage distinta para que se note la diferencia?

Puedes hacerlo de muchas formas:

1) En el evento create seleccionar que subimage quieres.
2) Crear 3 objetos que tengan como Parent al objeto que tiene los codigos.
3)Crear 4 objetos iguales pero que en sus eventos solo tengas scripts (Para no copiar y pegar todo el codigo)
4) Crear 4 sprites distintos y asigarlos en el evento create. (Parecida a la 1)

Ya que si usas la funcion choose o random te pueden salir repetidos.
Título: Re: Imagen aleatoria.
Publicado por: MRafX en Diciembre 06, 2011, 05:58:13 PM
aver, si es como yo pienso que lo quieres.. podrias agregar a crate:
[gml]//Create
image_index=floor(random(4))
image_speed=0[/gml]
eso haria que cada ves que crearas el objeto, tenga diferente sprite
espero que te sirva ^^u
Título: Re: Imagen aleatoria.
Publicado por: aggro en Diciembre 06, 2011, 06:52:51 PM
 el c?digo  de MRafX me sirvi?... muchas gracias por la ayuda!!!  XD
Título: Re: Imagen aleatoria.
Publicado por: Mgbu en Diciembre 07, 2011, 03:56:29 PM
Mmmh yo tuve problemas a usar image_index con numeros, yo hubiera usado

[gml]
color=floor(random(4))
if color=0 sprite_index=spr_auto_rojo //cambia los nombres de sprites
if color=1 sprite_index=spr_auto_azul
if color=2 sprite_index=spr_auto_verde
if color=3 sprite_index=spr_auto_amarillo
[/gml]
Título: Re: Imagen aleatoria.
Publicado por: MaanuRP en Diciembre 07, 2011, 05:13:12 PM
Cita de: Mgbu en Diciembre 07, 2011, 03:56:29 PM
Mmmh yo tuve problemas a usar image_index con numeros, yo hubiera usado

[gml]
color=floor(random(4))
if color=0 sprite_index=spr_auto_rojo //cambia los nombres de sprites
if color=1 sprite_index=spr_auto_azul
if color=2 sprite_index=spr_auto_verde
if color=3 sprite_index=spr_auto_amarillo
[/gml]

image_index cambia la subimage del sprite. sprite_index cambia el sprite del objeto.

En image_index tenes que usar numeros enteros para determinar la subimage que quieres

En sprite_index tenes que usar los nombres de los sprites.
Título: Re: Imagen aleatoria.
Publicado por: CrazyGuyGames:) en Diciembre 07, 2011, 06:48:10 PM
Hacer algo tan simple como esto es tan facil, y aun asi se complican
image_index=irandom(numero de subimages aqui que creo que seria 3 en este caso recuerda que la 1 se cuenta como 0)
seria
image_index=irandom(3)

si lo pones en el create event tambien pon la speed a 0 image_speed=0
si es en el step solo usa el image_index...
Título: Re: Imagen aleatoria.
Publicado por: MaanuRP en Diciembre 07, 2011, 09:27:43 PM
Cita de: CrazyGuyGames:) en Diciembre 07, 2011, 06:48:10 PM
Hacer algo tan simple como esto es tan facil, y aun asi se complican
image_index=irandom(numero de subimages aqui que creo que seria 3 en este caso recuerda que la 1 se cuenta como 0)
seria
image_index=irandom(3)

si lo pones en el create event tambien pon la speed a 0 image_speed=0
si es en el step solo usa el image_index...


Es tan simple si quieres que quede mal. En usar irandom tienes razon, para saltearle el flood.
Pero con todos estos metodos la subimage se va a repetir a menos que tengas muchisima suerte. Y si quiere crear 4 instancias del mismo objeto pero cambiandole el sprite me imagino que es para diferenciarlas, y si son iguales no hay diferencia.