ajuda erro com sprite

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

ajuda erro com sprite

Mensagem por makano em Qua 08 Fev 2012, 23:28

Estou fazendo um programa e nele eu abro algumas imagens para n carregar o programa eu tenho as imagens salvas na pasta e ele desenha quando a imagem é selecionada, tipo eu faço assim:

Código:

if file_exists(working_directory+'\imagem.png')
{
draw_sprite(sprite_add(working_directory+'\imagem.png',0,0,0,0,0),0,32,32)
}

ai quando eu vou testar ele funciona direitinho mas se ele fica um tempo aberto aparece esse erro:

ERROR in
action number 1
of Draw Event
for object obj_controle:

Trying to draw non-existing sprite.

oque esta errado? alguem pode me ajudar?
muito obrigado desde jah

makano

Número de Mensagens : 12
Idade : 27
Data de inscrição : 10/07/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: ajuda erro com sprite

Mensagem por Markituh em Qui 09 Fev 2012, 00:03

Cara, não vou pelo erro, mas seu código é um overflow só. O que ele vai fazer é adicionar a sprite cada vez que o Draw foi chamado, sendo assim consumindo muita memória. É bom estudar as funções antes de tentar se aventurar Smile

Outra coisa, não precisa fazer working_directory + "..." - apenas "imagem.png" já se refere a uma imagem no diretório do editável/executável.

Adicione a sprite no Create. E armazene o valor de sprite_add numa var:
Código:
imagem = noone; // noone é uma keyword própria para recursos não existentes, evita uns erros.

if file_exists("imagem.png")
{
    imagem = sprite_add("imagem.png", 0, 0, 0, 0, 0)
}
E finalmente, no Draw, vamos checar se a sprite não é noone (se ela foi carregada e de fato existe):
Código:
if imagem != noone
{
    draw_sprite(imagem, 0 32, 32);
}
Saca? Você só carrega o arquivo uma vez, e evita fazer besteira Razz

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: ajuda erro com sprite

Mensagem por makano em Qui 09 Fev 2012, 01:53

então o problema é q tenhu muitas imagens e vai ter ainda mais se eu colocar todas as imagens no game maker vai ficar muito pesado entao eu queria carregar apenas a imagem q esta sendo vista. valeu pelo toque do directory eu nem sabi disso.

makano

Número de Mensagens : 12
Idade : 27
Data de inscrição : 10/07/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: ajuda erro com sprite

Mensagem por saim em Qui 09 Fev 2012, 09:43

Você pode carregar a imagem que está sendo vista em vários eventos. Até mesmo o draw, em último caso, desde que lembre-se de liberar a memória quando a imagem não for usada novamente, com sprite_delete.

Mas pelo que me parece, é mais interessante usar o método do markituh - e lembrar de deletar a sprite no destroy event.

Eu também tenho esse hábito de importar arquivos externos. Normalmente eu importo TUDO em variáveis globais logo no primeira room e atribuo as sprites aos objetos usando object_set_sprite, o que facilita muita coisa (só preciso deletar as sprites no game_end).

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

Re: ajuda erro com sprite

Mensagem por makano em Qui 09 Fev 2012, 12:15

acho q eu resolvi pelo menos até agora n deu mais erro.
eu criei uma variavel no create e ela é = a uma imagem ai no step ele 1º deleta essa imagem e depois carrega a outra q eu quero.

makano

Número de Mensagens : 12
Idade : 27
Data de inscrição : 10/07/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: ajuda erro com sprite

Mensagem por Conteúdo patrocinado Hoje à(s) 03:01


Conteúdo patrocinado


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