sprite_save e surface_save

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Resolvido sprite_save e surface_save

Mensagem por saim em Qua 30 Nov 2011, 12:23

Pra encurtar a história, é o seguinte:
Percebi que surface_save cria o diretório determinado, se ele não existir e sprite_save não cria. Com sprite_save, se o diretório determinado não existe, a função é ignorada. Queria saber porquê (se é um bug, se tem algum motivo pra isso ou se o Mark Overmars dormiu no ponto).
Spoiler:

Teste para surface:
Código:
var Surf;
Surf = surface_create(32, 32);
surface_set_target(Surf);
draw_clear(c_blue);
surface_reset_target();
surface_save(Surf, working_directory + "\umDiretorio\surface.png");
surface_free(Surf);

Teste para sprite:
Código:
var Surf, Spri;
Surf = surface_create(32, 32);
surface_set_target(Surf);
draw_clear(c_red);
surface_reset_target();
Spri = sprite_create_from_surface(Surf, 0, 0, 32, 32, 0, 0, 0, 0);
surface_free(Surf);
sprite_save(Spri, 0, working_directory + "\outroDiretorio\sprite.png");
sprite_delete(Spri);
Não tenho certeza dos argumentos pra criar e salvar o sprite, mas deu pra entender o que eu quero dizer.

Isso não é um problema, eu posso perfeitamente checar se o diretório em questão existe e criá-lo manualmente em caso negativo. Mas estou curioso.
Alguém sabe o que se passa?


Última edição por saim em Qua 30 Nov 2011, 15:38, editado 2 vez(es)

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: sprite_save e surface_save

Mensagem por MatheusReis em Qua 30 Nov 2011, 12:33

Não sei o que se passou no seu pc, mas no meu, em nenhum dos casos, houve criação de pastas, assim ambas as funções não foram executadas. Depois disso, criei as pastas manualmente e executei os codes de novo, os arquivos foram salvos.
(ah, corrige no code dois:
Spri = sprite_create_from_surface(Surf, 0, 0, 32, 32, 0, 0, 0, 0);
)

MatheusReis

Ranking : Nota A
Número de Mensagens : 1087
Idade : 23
Data de inscrição : 13/01/2010
Notas recebidas : B-A-A
Reputação : 30
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 0

http://www.mathaeuz.deviantart.com

Voltar ao Topo Ir em baixo

Resolvido Re: sprite_save e surface_save

Mensagem por saim em Qua 30 Nov 2011, 12:43

Talvez eu tenha omitido uma parte importante (mas que não faria sentido se fosse). No surface_save, no nome do arquivo, eu usei um get_string:
Código:
surface_save(Surf, working_directory + "\umDiretorio\" + get_string("digite o nome", "nome")+ ".png");

Ah, eu uso game maker 8.0.

PS: corrigido, obrigado! Happy
[edit]: Se vergonha matasse... :oops:
Olha, eu tenho que gastar mais tempo em cima dos códigos antes de vir postar na comunidade.
Eu estava criando o diretório manualmente nos dois casos. É que como aconteceu um monte de coisas no meio do caminho, acabei deletando essa informação do meu cérebro.
Bastava reler o código todo da surface. Mas como eu estava mais preocupado com "porque o da sprite não cria o diretório automaticamente, nem reparei no detalhe.

Foi mal pela perda de tempo.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: sprite_save e surface_save

Mensagem por MatheusReis em Qua 30 Nov 2011, 15:40

Hah, não há de que, acontece. ;D

MatheusReis

Ranking : Nota A
Número de Mensagens : 1087
Idade : 23
Data de inscrição : 13/01/2010
Notas recebidas : B-A-A
Reputação : 30
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 0

http://www.mathaeuz.deviantart.com

Voltar ao Topo Ir em baixo

Resolvido Re: sprite_save e surface_save

Mensagem por Conteúdo patrocinado Hoje à(s) 21:54


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum