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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 10/07/2010
Número de Mensagens : 12
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

ajuda erro com sprite

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
avatar
Ranking : Sem avaliações
Data de inscrição : 11/10/2009
Número de Mensagens : 2184
Insígnias de JAM :

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

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

Re: ajuda erro com sprite

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
avatar
Data de inscrição : 10/07/2010
Número de Mensagens : 12
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: ajuda erro com sprite

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.
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

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

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: ajuda erro com sprite

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).
avatar
Data de inscrição : 10/07/2010
Número de Mensagens : 12
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: ajuda erro com sprite

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.
Conteúdo patrocinado

Re: ajuda erro com sprite

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