Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Metal Mario en Octubre 12, 2011, 07:29:28 PM

Título: Solucionado: Buscar una imagen para establecer como avatar
Publicado por: Metal Mario en Octubre 12, 2011, 07:29:28 PM
Mi duda es esta:

Quiero que al darle clic a un objeto, me desglose una ventana para que el usuario busque su imagen preferida. Alguna idea de como hacer eso???
Si hay dudas, haganlas saber.
Saludos :D
Título: Re: Buscar una imagen para establecer como avatar
Publicado por: MaanuRP en Octubre 12, 2011, 10:35:23 PM
Mira este post: http://www.comunidadgm.org/index.php?topic=15806

Es sobre background, pero hace lo que tu pides, solo te queda adaptarlo en algunos detallitos a tu juego :)
Título: Re: Buscar una imagen para establecer como avatar
Publicado por: Metal Mario en Octubre 13, 2011, 08:17:11 PM
Pero...trata de backgrounds. Yo solo necesito que tome una peque?a imagen como avatar, no un enorme background. Podr?as adaptarme el codigo???

Este codigo abrira una ventana para buscar alguna imagen??? Sucede que es nada mas por la apariencia XD
Título: Re: Buscar una imagen para establecer como avatar
Publicado por: Silver_light en Octubre 13, 2011, 08:46:55 PM
Pues... el c?digo abre una ventana de Windows y pide por un formato de archivo, es pr?cticamente lo ?nico que hace... as? entonces no creo que haya que modificar nada en el c?digo, la funcion central a todo esto es:
[gml]
get_open_filename(filter,fname);
[/gml]
Si necesitas especificaciones de la funcion:
Citar
get_open_filename(filter,fname) Le pide al jugador un archive para abrir, con el filtro (FILTER) dado. El filtro tiene la forma ?nombre1|m?scara1|nombre2|m?scara2? . Una m?scara contiene diferentes opciones con un ';'(punto y coma) entre ellas. '*' (asterisco) significa cualquier string. Por ejemplo: ?Mapa de bits|*bmp;*.wmf?.Si el jugador presiona Cancel, un string vac?o es devuelto.

Como est? en el ejemplo, y que quiz?s pueda aclararte como funciona el tema de las "mascaras":
[gml]
get_open_filename("JPG|*.jpg|Mapa de Bits|*.bmp|Portable Network Graphics|*.png|Todos los archivos de imagen|*.jpg;*.bmp;*.png","")
[/gml]

Nyan! :)
Título: Re: Buscar una imagen para establecer como avatar
Publicado por: Metal Mario en Octubre 13, 2011, 09:01:10 PM
A probar!!!

Por ahora no estoy en la laptop, pero despues probare el codigo
"Nyan! :)"
Título: Re: Buscar una imagen para establecer como avatar
Publicado por: Silver_light en Octubre 14, 2011, 12:51:52 AM
Pues bien, puedes hacer como se dice en el post mencionado con "sprite_replace"(adaptado background_replace obviamente), las ventajas de hacer esto lo menciona Killer: Remplaza un sprite existente cada vez que se cargue la imagen para evitar que se sature de manera accidental la memoria.

Si deseas hacerlo de esta manera usa:
[gml]
avatar = get_open_filename("JPG|*.jpg|Mapa de Bits|*.bmp|Portable Network Graphics|*.png|Todos los archivos de imagen|*.jpg;*.bmp;*.png","")
sprite_replace(sprite_avatar,avatar,0,false,false,0,0);
//Siendo "Sprite_avatar" un sprite creado anteriormente
[/gml]
Luego para dibujarlo solo necesitas
[gml]
draw_sprite(avatar,image_index,x,y);
[/gml]

Citar
Ahora que eleg? la imagen para ponerla de avatar, como hago que se muestre en el room?? Podr?a ponerla como sprite_add pero como?? O estoy usando mal mi codigo??
Ahora bien si quieres hacerlo con "Sprite_add" puedes hacerlo as?:
Primero, creas una variable "avatar" con el valor de un sprite ya existente:
[gml]
avatar = sprite0;
[/gml]
Segundo, obtenes el archivo de imagen con las funciones mencionadas,P.ej.:
[gml]
var carga;
carga = get_open_filename("JPG|*.jpg|BMP|*.bmp|PNG|*.png|Todos los archivos de imagen|*.jpg;*.bmp;*.png","");
avatar = sprite_add(carga,0,false,false,0,0);
[/gml]
Finalmente para dibujarlo usas, como en el anterior:
[gml]
draw_sprite(avatar,image_index,x,y);
[/gml]
Ahora el problema de esto es que si es como dice Killer, podr?as saturar la memoria haciendo que tu juego colapse Jajaja

Nyan! :3
Título: Re: Buscar una imagen para establecer como avatar
Publicado por: Metal Mario en Octubre 14, 2011, 07:40:45 PM
Funciona perfectamente, probe con la primera y pues, en vez de que dibuje a avatar, dibuje a la sprite vacia reemplazada porque avatar solo era como un intercambio... o algo asi :P

Siempre eres mi salvacion. Gracias otra vez, Silver_light ^^
+1 karma