[Resolvido]Carregando arquivo externo.

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

Resolvido [Resolvido]Carregando arquivo externo.

Mensagem por Da Galáxia em Sab 18 Set 2010, 13:58

ola a todos!
Bom, estou construindo um game de shooter espacial, e felizmente esta transcorrendo tudo perfeitamente. Como estou usando diversos bitmaps, quando mais avançado o meu projeto fica, mais demorado é o carregamento do executavél. Como todas as imagem estão dentro do executavel isso é compreensivel, eu também programo em delphi e c++ e os carregamentos são feitos externamente, imaginei que haveria possibilidade de se fazer o mesmo no GM. Então aqui neste exelente forum achei as funções necessarias, ok.

COMO ESTOU FAZENDO:
No evento create do objeto a carregar o arquivo:
global.sprite=sprite_add("inimigo.bmp",0,1,1,0,0,x,y)
sprite_index = global.sprite

no draw:
draw_sprite(global.sprite, 0 ,x,y)
sprite_index = global.sprite


O PROBLEMA:
Os tiros do inimigo não saem mais de sua origem x, y perfeitamente;
Os inimigos são destruidos, como quando é usado arquivo INterno, porem não processam a animação da explosão.
Parece ser um problema de origem x, y não sei, e tb acho que estou fazendo errado isso
sprite_index = global.sprite, não sei. Quem puder elucidar agradeço.

Da Galáxia

Número de Mensagens : 348
Data de inscrição : 14/01/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Carregando arquivo externo.

Mensagem por Convidad em Sab 18 Set 2010, 19:02

instance_create(x,y,obj_botane)

O erro, acredito, pode estar nos últimos argumentos da função sprite_add() que dizem respeito aos eixos (pivô) x e y do sprite.

Os inimigos são destruidos, como quando é usado arquivo INterno, porem não processam a animação da explosão.

Tente colocar:

Código:
draw_sprite(global.sprite, image_index, x, y);

Uma outra dica, é que cada instância possuia uma variável própria de referência ao sprite que ela usa (ou deve usar), chamada sprite_index. Você pode colocar o valor da variável global nela toda vez que quiser que ela mude o sprite, isso vai tornar seu trabalho mais fácil, por exemplo:

sprite_index := global.sprite;

Então, no draw:

Código:
draw_sprite(sprite_index, image_index, x, y);

Uma observação importante é que se você mudar o ângulo do desenho com a variável image_angle, você deve usar outra função de desenho que é a draw_sprite_ext().

Convidad
Convidado


Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Carregando arquivo externo.

Mensagem por Da Galáxia em Sab 18 Set 2010, 21:16

Capitão Commando escreveu:
instance_create(x,y,obj_botane)
O que é isso ai em cima?

O erro, acredito, pode estar nos últimos argumentos da função sprite_add() que dizem respeito aos eixos (pivô) x e y do sprite.
Tambem acho isso, mas como resolver?


Os inimigos são destruidos, como quando é usado arquivo INterno, porem não processam a animação da explosão.

Tente colocar:

Código:
draw_sprite(global.sprite, image_index, x, y);
Não deu.

Uma outra dica, é que cada instância possuia uma variável própria de referência ao sprite que ela usa (ou deve usar), chamada sprite_index. Você pode colocar o valor da variável global nela toda vez que quiser que ela mude o sprite, isso vai tornar seu trabalho mais fácil, por exemplo:

sprite_index := global.sprite;
Como no post, eu ja fiz, e nada.

Então, no draw:

Código:
draw_sprite(sprite_index, image_index, x, y);

Uma observação importante é que se você mudar o ângulo do desenho com a variável image_angle, você deve usar outra função de desenho que é a draw_sprite_ext().


Obrigado, mas eu tentei essas dicas e não deu, se tiver mais alguma ideia...


----------------------------------EDITE-----------------------------------
Capitão
CONSEGUE;
bastou por no lugar de x e y do sprite_add a variavel local sprite_index.
Agora tudo acontece na sprite, porem não centralizada, vou ver como resolvo, se alguem poder adiantar agradeço

------------------------------------REEDITADO---------------------------
Para quem tem o mesmo problema:
No Create:
O + 20 foi o ajuste necessario para a centralização da sprite. Mude os dois sprite_index, conforme a sua sprite.
global.sprite=sprite_add("inimigo.bmp",0,1,1,0,0,sprite_index,sprite_index+20)
sprite_index = global.sprite

No Draw:
draw_sprite(global.sprite, sprite_index ,x,y)

Podem fechar o topico.

Da Galáxia

Número de Mensagens : 348
Data de inscrição : 14/01/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Carregando arquivo externo.

Mensagem por Conteúdo patrocinado Hoje à(s) 09:38


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