Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Nikholas9 en Febrero 25, 2014, 09:34:26 PM

Título: Imagen de la Instancia [SOLUCIONADO]
Publicado por: Nikholas9 en Febrero 25, 2014, 09:34:26 PM
Hola a todos , espero su ayuda.

tengo instancias de un objeto en la room, este objeto tiene un sprite con 2 imagenes.

quiero que solo una de instancia tenga la segunda imagen, y las demas la primera imagen del sprite.

Espero su ayuda, sino me entienden mucho diganme lo explico mejor.
Saludos.
Título: Re:Imagen de la Instancia
Publicado por: ordo_ab_chao en Febrero 26, 2014, 01:02:05 AM
podrías hacerlo con una variable global, declaras la global en el create de otro objeto que se cree antes que el que nos interesa, y en el evento create de este ultimo verificas como esta la variable global, seria algo asi:
[create de cualquier otro objeto que se cree antes]
global.spr_inst=0;

[create del objeto de interes]

if (global.spr_inst)
{
    sprite_index= 0;
    global.spr_inst=1;
}
else
{
    sprite_index=1;
}
Título: Re:Imagen de la Instancia
Publicado por: Nikholas9 en Febrero 26, 2014, 01:44:10 AM
Hola gracias por Responder, YO ME REFERIA A QUE

UN OBJETO QUE TIENE VARIAS INSTANCIAS EN UNA ROOM

yo quiero que solo una de las instancias tenga la image_index = 0 y las demas instancias la image_index = 1.
Título: Re:Imagen de la Instancia
Publicado por: penumbra en Febrero 26, 2014, 02:39:17 AM
¿Cómo creas las instancias? ¿Mediante el editor de habitación o mediante código? ¿Puedes dar más detalles de qué pretendes hacer con las instancias o cómo esperas que se comporten?
Título: Re:Imagen de la Instancia
Publicado por: ordo_ab_chao en Febrero 26, 2014, 02:48:12 AM
aahhhhh yo pensaba que era solo con 2 instancias, maldita comprensión lectora jajaja, lo siento mmmm se me ocurre en el evento create poner algo así, aunque no estoy totalmente seguro de que funcione xD:
se le asigna la imagen 0 a la primera instancia, y las demás tendrían la imagen 1, asumiendo que esta bien
[create]

if (instance_number(mismoobjeto)==1)
{
    image_index=0;
}
else
{
    image_index=1;
Título: Re:Imagen de la Instancia
Publicado por: Nikholas9 en Febrero 26, 2014, 03:58:00 AM
Cita de: ordo_ab_chao en Febrero 26, 2014, 02:48:12 AM
aahhhhh yo pensaba que era solo con 2 instancias, maldita comprensión lectora jajaja, lo siento mmmm se me ocurre en el evento create poner algo así, aunque no estoy totalmente seguro de que funcione xD:
se le asigna la imagen 0 a la primera instancia, y las demás tendrían la imagen 1, asumiendo que esta bien
[create]

if (instance_number(mismoobjeto)==1)
{
    image_index=0;
}
else
{
    image_index=1;



Gracias por tu respuesta pero no funciona

Me explico mejor tengo 1 objeto "tuberia" el cual tiene un sprite con dos imagenes.

hasta hay todo bien creo yo.

Lo que yo quiero es que al yo poner imagenes en la room (manualmente e el editor) seleccione que imagen poner para la instancia que yo desee

Al igual que en el room editor a la hora de agregar instancia se puede cambiar su escala o el angulo, quisiera saber como cambiar la imagen (image_index) de una o varias instancia del objeto, espero su ayuda, o diganme como puedo buscarn en googlo, como que busco ?
Título: Re:Imagen de la Instancia
Publicado por: 7sixerCF en Febrero 26, 2014, 05:42:46 AM
Cita de: Nikholas9 en Febrero 26, 2014, 03:58:00 AM
Cita de: ordo_ab_chao en Febrero 26, 2014, 02:48:12 AM
aahhhhh yo pensaba que era solo con 2 instancias, maldita comprensión lectora jajaja, lo siento mmmm se me ocurre en el evento create poner algo así, aunque no estoy totalmente seguro de que funcione xD:
se le asigna la imagen 0 a la primera instancia, y las demás tendrían la imagen 1, asumiendo que esta bien
[create]

if (instance_number(mismoobjeto)==1)
{
    image_index=0;
}
else
{
    image_index=1;



Gracias por tu respuesta pero no funciona

Me explico mejor tengo 1 objeto "tuberia" el cual tiene un sprite con dos imagenes.

hasta hay todo bien creo yo.

Lo que yo quiero es que al yo poner imagenes en la room (manualmente e el editor) seleccione que imagen poner para la instancia que yo desee

Al igual que en el room editor a la hora de agregar instancia se puede cambiar su escala o el angulo, quisiera saber como cambiar la imagen (image_index) de una o varias instancia del objeto, espero su ayuda, o diganme como puedo buscarn en googlo, como que busco ?

eso no se puede hacer desde el editor de habitaciones por que aunque no lo creas edita la habitacion y su aspecto, si dices que son solo 2 imagenes crea 2 objetos separados es mas facil...
Título: Re:Imagen de la Instancia
Publicado por: Nikholas9 en Febrero 26, 2014, 06:54:30 AM
Claro se que no esta como una opcion , solo que este objeto ya tiene un gran ccodigo dentro, por ello quiero que unas instancias de este objeto tengan una imagen y las demas instancias otra imagen.
Título: Re:Imagen de la Instancia
Publicado por: ordo_ab_chao en Febrero 26, 2014, 07:17:42 AM
puedes hacer un objeto con el mismo código declarando lo como parent, mmm no me explique muy bien, en el manual esta mejor explicado, echale un ojo! y dinos que tal te fue
http://www.comunidadgm.org/manual_GM/Mas_sobre_los_objetos.htm (http://www.comunidadgm.org/manual_GM/Mas_sobre_los_objetos.htm)
Título: Re:Imagen de la Instancia
Publicado por: penumbra en Febrero 26, 2014, 07:50:24 AM
Pues de manera manual en la interfaz de GM no se puede. Las propiedades del objeto no admiten más de un sprite, pero mediante código sí se puede.

Nombre: instance_create_sprite(). Asigna un sprite específico a una instancia
/*
argument0 = La posición x de la instancia (al momento de crearla)
argument1 = La posición y de la instancia (al momento de crearla)
argument2 = El objeto a instanciar.
argument3 = El sprite que se desea asignar a la instancia.
*/

var spr, xx, yy, mi_id
xx = argument0;  yy = argument1;  spr = argument3

mi_id = instance_create(xx, yy, argument2)
mi_id.sprite_index = spr
return mi_id


Para usar el script sería algo así
instancia_a = instance_create_sprite(100, 100, obj_tuberia, spr_tubo_verde)
instancia_b = instance_create_sprite(200, 200, obj_tuberia, spr_tubo_rojo)

[/code]

La idea es esa

En realidad hay una manera de hacerlo desde el editor de habitación, si es que no quieres crear las instancias en tiempo de ejecución, pero no es tan bonito como seleccionar una imagen de un menú, lo que se haría es

1. Colocar en la habitación todas las instancias mediante el editor de habitaciones
2. En cada instancia, hacer click derecho sobre ella.
3. Elegir la opción "creation code"
4. Se abre una ventanda para escribir código. Ahí cambiarías el sprite_index como tú quieras

El "evento" (no es un evento propiamente) instance creation code es una característica poco popular, desconocida o menospreciada en GM, pero resulta muy útil en ocasiones.
Título: Re:Imagen de la Instancia
Publicado por: Nikholas9 en Febrero 26, 2014, 07:02:00 PM
GRACIAS POR RESPONDER A LOS DOS AHORITA LOS PRUEBO Y LES CUENTO QUE TAL ME FUE :D graciasssss se pasaron
Título: Re:Imagen de la Instancia
Publicado por: Nikholas9 en Febrero 26, 2014, 07:17:49 PM
Gracias a Ordo_ab_chao y a penumbra por responder me funciono, bueno se acopla mas a mi neceisdad lo de la CREAtION CODE  GRACIAS [SOLUCIONADO]