Saludos Makeros, estaba viendo un viejo proyecto hecho en GMS 1.2 y me preguntaba como podia exportar los sprites pues por alguna extraña razon no me aparecia la opcion de save sprites que tengo en GM8, se me ocurrio la idea de exportarlas por medio de codigo
Estuve investigando algunas funciones para el manejo de los sprites y creo que lo hice de muy mala forma o es que use las funciones equivocadas
[gml]
var sprite, i;
i = 0;
sprite = sprite_get_name(i);
while(sprite_exists(sprite)) {
sprite_save_strip(sprite, "sprite"+string(i)+".png")
i += 1;
sprite = sprite_get_name(i);
}
[/gml]
Pues al principio funciona pero por alguna extraña razon solo me guarda el primer sprite que tengo en el proyecto, los demas no se guardan y termina guardando una y otra vez el mismo sprite
Alguna sugerencia :-[
Cita de: T789 en Julio 02, 2020, 10:25:42 PM
Saludos Makeros, estaba viendo un viejo proyecto hecho en GMS 1.2 y me preguntaba como podia exportar los sprites pues por alguna extraña razon no me aparecia la opcion de save sprites que tengo en GM8, se me ocurrio la idea de exportarlas por medio de codigo
Estuve investigando algunas funciones para el manejo de los sprites y creo que lo hice de muy mala forma o es que use las funciones equivocadas
[gml]
var sprite, i;
i = 0;
sprite = sprite_get_name(i);
while(sprite_exists(sprite)) {
sprite_save_strip(sprite, "sprite"+string(i)+".png")
i += 1;
sprite = sprite_get_name(i);
}
[/gml]
Pues al principio funciona pero por alguna extraña razon solo me guarda el primer sprite que tengo en el proyecto, los demas no se guardan y termina guardando una y otra vez el mismo sprite
Alguna sugerencia :-[
yo que tu, en lugar de matarme con codigo (porque no se mucho sobre tal cosa) copiaria la imagen entera de un sprite y la pego en un editor.
Ahi lo guardas y haces ese proceso con cada sprite y los puedes cargar desde game maker 8.
O no se, asi lo haria yo espero que esto te ayude
ahora se despide el pana 8-bits
Últimamente he visto preguntas parecidas, pero las otras eran sobre hacer listas de rooms y de objetos.
Puedes usar como base este script
https://www.gmlscripts.com/script/map_sprites
En los comentarios dicen que hay una función incompatible con GM8, esta versión debería funcionar
[gml]
var no,i,ds_map;
ds_map = argument0;
no = sprite_create_from_screen(0,0,1,1,false,false,0,0);
sprite_delete(no);
for (i=0; i<no; i+=1) {
if (sprite_exists(i)) {
ds_map_add(ds_map,sprite_get_name(i),i);
}
}
[/gml]
Se crea un sprite para saber el id máximo que se debe buscar.
En lugar de guardar los sprites en el ds_map, puedes exportarlos.
Listo logre solucionarlo, bueno con algunas mejoras al script
[gml]
/// Event Create
var i, b, sprite;
b = 0;
sprite = sprite_create_from_screen(0,0,1,1,0,0,0,0)
sprite_delete(sprite)
for(i=0; i<sprite; i+=1) {
if sprite_exists(i)
{
sprite_save_strip(i, "sprite"+string(b)+".png");
b += 1;
}
}
[/gml]
Pero por alguna extraña razon no me guardaba los sprites cuando le ponia sprite_get_name(), asi que lo hice nada mas con el id de los sprites, alguien me puede explicar porque cuando lo hago manualmente usando el nombre si lo guarda pero cuando lo hago recorriendo con un for no lo guarda ???
Bueno de todas formas ya lo solucione y de paso aprendi mas sobre los id que tiene cada recurso en GM, cosa curiosa es que puedo usar draw_text(x, y-15, spr_ball_yellow) para saber el id y no solo con sprites, tambien con otros recursos
En fin estoy muy intrigado XD