Conectar-se
Quem está conectado
13 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 13 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota A
Notas recebidas : A - A
Data de inscrição : 15/02/2009
Número de Mensagens : 1479
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 9

Prêmios
   : 1
   : 0
   : 1
Ver perfil do usuáriohttp://www.indiegamebr.com

Deletando coisas da memoria...

em Qua 16 Dez 2009, 18:12
Pessoal seguinte, antes de iniciar uma fase eu criei rons de loading, com um objeto que recebe todas os sprites e sons e as joga em variaveis globais.

Quando o personagem morre na fase ela é iniciada de volta a tela loading.

No create do obj que recebe e apaga as variáveis existe esse código que apaga os sons e os sprites da memoria:

Código:
for (i = 0; i <= 150; i += 1)
begin
    if sound_exists(i) then sound_delete(i);
    if sprite_exists(i) then sprite_delete(i);
end;

e abaixo disso os códigos que fazem as variaveis globais receberem os sons e sprites externos, ou seja, toda vez que entra na tela loading, ela apaga tudo da memoria e reinicia as variaveis globais...

Finalmente depois de explicado o sitema posso fazer a minha pergunta hehehe: Very Happy
Quando uma variável global recebe um sprite externo ela reserva um espaço na memoria para esse sprite. E se eu faço novamente o comando, ela vai guardar mais espaço na memoria, ou ela sabe que ja recebeu esse sprite e não gasta mais memoria? Pois se ela não gastar mais memoria eu posso apagar o codigo acima que deleta os sons e sprites, pois isso consome alguns segundos chatos... 😢
avatar
Data de inscrição : 24/05/2008
Número de Mensagens : 2417
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 14

Prêmios
   : 0
   : 2
   : 0
Ver perfil do usuário

Re: Deletando coisas da memoria...

em Qua 16 Dez 2009, 21:32
não, você iria tem um "memory leak", você iria perder o index do som/fundo/etc carregado e ele continuaria na memoria. E alem disso iria carregar mais coisa na memoria.

E cara, para liberar a memoria é bem mais rápido que para carregar Happy
Para liberar uns 10mb aqui no meu jogo num da nem 1/4 de segundo, talvez até menos!

Flww

Movido.
avatar
Ranking : Nota A
Notas recebidas : A - A
Data de inscrição : 15/02/2009
Número de Mensagens : 1479
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 9

Prêmios
   : 1
   : 0
   : 1
Ver perfil do usuáriohttp://www.indiegamebr.com

Re: Deletando coisas da memoria...

em Qua 16 Dez 2009, 22:37
sempre confundo gml com desenvolvimento... mas saquei o que o mestre janx falou. vlw mermão!!!
Convidad
Convidado

Re: Deletando coisas da memoria...

em Sab 19 Dez 2009, 00:15
O janx tá certo. Além disso, você pode fazer o seguinte: colocar uns resources "em branco", ou seja, só criar o sprite ou som e não carregar nenhum arquivo e então usar a função sprite_replace() ou sound_replace().

Essas funções vão fazer justamente isso, trocar um recurso por outro, porém, mantendo o index do original.
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum