Últimos assuntos
» CR - Concurso Relâmpago!!
por Willy Ter 18 Jul 2017, 17:11

» 3D:como rodar a camara em horizontal?
por Cambalinho Ter 18 Jul 2017, 15:09

» [Resolvido] pode explicar a d3d_set_projection()?
por Cambalinho Ter 18 Jul 2017, 11:28

» Escrever a resposta certa muda de room
por PedroX Seg 17 Jul 2017, 21:46

» Nota de esclarecimento - GMBR voltou!
por Mentos e Coca-cola Seg 17 Jul 2017, 17:05

» [CR] Campo Minado
por Katerp Dom 16 Jul 2017, 23:09

» [CR] The Bazooka Cat
por Tedi Ripper Dom 16 Jul 2017, 23:01

» Como melhorar um protótipo(Design)
por lolandoplayer Dom 16 Jul 2017, 22:56

» Diminuir velocidade ao arrastar objeto
por LwysF Dom 16 Jul 2017, 17:33

» Ajuda para mecanismo do jogo
por Willy Dom 16 Jul 2017, 15:54

Estatísticas
Temos 12700 usuários registrados
O último usuário registrado atende pelo nome de Eduardo Gomes

Os nossos membros postaram um total de 220918 mensagens em 30411 assuntos

Deletando coisas da memoria...

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

Deletando coisas da memoria...

Mensagem por Anderson3d 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... :cry:
avatar
Anderson3d

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

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 0
   : 1

Ver perfil do usuário http://www.indiegamebr.com

Voltar ao Topo Ir em baixo

Re: Deletando coisas da memoria...

Mensagem por Janx 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
Janx

Data de inscrição : 24/05/2008
Número de Mensagens : 2417
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 2
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Deletando coisas da memoria...

Mensagem por Anderson3d em Qua 16 Dez 2009, 22:37

sempre confundo gml com desenvolvimento... mas saquei o que o mestre janx falou. vlw mermão!!!
avatar
Anderson3d

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

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 0
   : 1

Ver perfil do usuário http://www.indiegamebr.com

Voltar ao Topo Ir em baixo

Re: Deletando coisas da memoria...

Mensagem por Convidad 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.

Convidad
Convidado


Voltar ao Topo Ir em baixo

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

- Tópicos similares

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