Mudar SPRITE ou OBJETO de acordo com uma variável

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

Mudar SPRITE ou OBJETO de acordo com uma variável

Mensagem por leandroferro em Qua 05 Set 2012, 14:40

Olá,
Então estou com um pequeno probleminha..
Eu crie no meu TDS um variável ammo. E criei um objeto obj_ammo para desenhar em determinado ponto este sprite na tela, porém eu queria mudar este sprite de acordo com a mudança da variável ammo, assim ammo = 25 a sprite mostra todas as balas, mas ammo=24 mostra uma bala a menos ou seja outra sprite.. Alguém tem alguma idéia de como fazer isso??

Obrigado desde já;

leandroferro

Número de Mensagens : 14
Data de inscrição : 03/09/2012
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Mudar SPRITE ou OBJETO de acordo com uma variável

Mensagem por cascavelo em Qua 05 Set 2012, 14:53

Use image_index=ammo,
sendo que o primeiro desenho dos frames do sprite deve ser vazio, ou use ammo+1 no caso do primeiro frame ter o desenho de uma bala.

Você terá que fazer um sprite com 25 desenhos.

cascavelo

Ranking : Nota A
Número de Mensagens : 1011
Idade : 46
Data de inscrição : 08/12/2011
Notas recebidas : A - A - A - A - A -A -C
Reputação : 71
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 1

Voltar ao Topo Ir em baixo

Re: Mudar SPRITE ou OBJETO de acordo com uma variável

Mensagem por luiz_eldorado em Qua 05 Set 2012, 14:58

Código:
for(i=0;i<ammo;i+=1) {
draw_sprite(spriteDaBala,0,x+(i*16),y);
}
Try it!

luiz_eldorado

Ranking : Nota C
Número de Mensagens : 928
Idade : 18
Data de inscrição : 30/07/2011
Notas recebidas : C
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://luizpontes.tk/

Voltar ao Topo Ir em baixo

Re: Mudar SPRITE ou OBJETO de acordo com uma variável

Mensagem por leandroferro em Qua 05 Set 2012, 17:29

Ok, entendido, mas desculpe a ignorância luiz_eldorado onde eu ponho este código em qual event??
Eu não entendi bem cascavelo em relação ao image_index=ammo, eu tipo coloco criar sprite e em sprite = ammo, tipo ammo = 25 e image = 25, ammo 24 e image = 24?? Seria certo...

leandroferro

Número de Mensagens : 14
Data de inscrição : 03/09/2012
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Mudar SPRITE ou OBJETO de acordo com uma variável

Mensagem por theguitarmester em Qua 05 Set 2012, 18:37

não é o melhor o que o Cascavelo disse(dependendo para que quer), Mas foi o que você pediu, então está certo.

o Luiz_eldorado falou um jeito para desenhar na Tela, o número de balas que você tem, por icones, isto é, não o Número.
e Coloque no Draw.

theguitarmester

Ranking : Sem avaliações
Número de Mensagens : 1908
Idade : 21
Data de inscrição : 28/02/2012
Notas recebidas : B
Reputação : 80
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 2
   : 2
   : 1

http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Re: Mudar SPRITE ou OBJETO de acordo com uma variável

Mensagem por luiz_eldorado em Qua 05 Set 2012, 18:59

No Draw Event.
Acho que o que o cascavelo quis dizer é criar uma subimagem pra cada quantidade de balas, mas acho que isto irá pesar muito no seu jogo (não em velocidade, mas no tamanho do exe).
theguitarmester, se quiser colocar o numero é só por num draw_text.

luiz_eldorado

Ranking : Nota C
Número de Mensagens : 928
Idade : 18
Data de inscrição : 30/07/2011
Notas recebidas : C
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://luizpontes.tk/

Voltar ao Topo Ir em baixo

Re: Mudar SPRITE ou OBJETO de acordo com uma variável

Mensagem por cascavelo em Qua 05 Set 2012, 20:26

Eu não entendi bem cascavelo em relação ao image_index=ammo, eu tipo coloco criar sprite e em sprite = ammo, tipo ammo = 25 e image = 25, ammo 24 e image = 24?? Seria certo...

Não, você usa assim mesmo, coloca no step, pode usar também aquele icone "Change sprite" a subimage é a variável ammo e a velocidade é zero, só que você teria o trabalho de fazer um sprite com 25 imagens pras balas.

A diferença de usar draw e usar este método é:

com draw - você só precisa de um desenho da bala e necessita saber o tamanho dele pra espaçar corretamente. É o método mais rápido e o arquivo será menor.

Com sprite_index, image_index - Você tem que desenhar todas as imagens antes, mas tem mais flexibilidade pra animar pois cada imagem é diferente uma da outra. Você pode fazer um trabalho mais artístico.É mais demorado e o arquivo será maior. Só recomendo este método se você tiver dons artísticos.

É bom compreender os dois métodos.

cascavelo

Ranking : Nota A
Número de Mensagens : 1011
Idade : 46
Data de inscrição : 08/12/2011
Notas recebidas : A - A - A - A - A -A -C
Reputação : 71
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 1

Voltar ao Topo Ir em baixo

Re: Mudar SPRITE ou OBJETO de acordo com uma variável

Mensagem por moisesBR em Qua 05 Set 2012, 20:41

Se ainda não entendeu, vamos ver ao meu modo:

Há três modos de você fazer isso:
1- um sprite de cada fase(creio que fez isso)
2- um sprite contendo vários frames(todas imagens)
3- um só sprite que será desenhado conforme o valor a variável

A opção 2 pra mim é a melhor.
Se não criou, crie um obj_ammo com a imagem inicial e e coloque na room onde
bem quiser e no seu steep:
Código:
sprite_index=spr_ammo image_speed=0 image_index=25
Ou tentaria isso(pode dar certo):
Código:
sprite_index=spr_ammo image_speed=0 image_index=ammo
a variável ammo é que vai dizer qual imagem será mostrada!

Se quiser, adicione isto no create ou steep:
Código:
x=10 y=10
para definir onde vai ficar na tela! No caso estou mandando para cima a esquerda. Para seguir a tela coloque algo tipo
Código:
view_xview=10 e view_yview=10
(É claro que neste caso a view deve estar ativado)

Pra opções 1 e 3 dá trabalho pra cacilds!!! mas se quiser, os camaradas lhe ajudarão.

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Mudar SPRITE ou OBJETO de acordo com uma variável

Mensagem por leandroferro em Qui 06 Set 2012, 14:09

Obrigado a todos,
Porém uma dúvida MoisesBR a variavel ammo está no object char e você está pedindo para eu criar um novo objeto ammo, como o objt_ammo perceberia que tem de mudar a sprite e a variável está em outro objeto???

leandroferro

Número de Mensagens : 14
Data de inscrição : 03/09/2012
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Mudar SPRITE ou OBJETO de acordo com uma variável

Mensagem por cascavelo em Qui 06 Set 2012, 14:33

Para usar variáveis de outros objetos é só colocar o nome dele com um ponto e a variável. A instância do objeto char tem que existir sempre, se você a destruir dará erro, se este for o caso faça a variável ammo como global e pode utiliza-la em qualquer objeto.
assim:
image_index=obj_char.ammo
ou assim:
image_index=global.ammo

Procure aprender sobre variáveis globais.

cascavelo

Ranking : Nota A
Número de Mensagens : 1011
Idade : 46
Data de inscrição : 08/12/2011
Notas recebidas : A - A - A - A - A -A -C
Reputação : 71
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 1

Voltar ao Topo Ir em baixo

Re: Mudar SPRITE ou OBJETO de acordo com uma variável

Mensagem por leandroferro em Qui 06 Set 2012, 15:02

Então sabem o que aconteceu?

Meu char transformou-se no sprite da ammo??? E se eu coloco no o change sprite no obj_ammo ele ignora a informação de atirar e ter de mudar o sprite.


A parte boa é que deu certo colocando a informação no step do char, a parte ruim é que alterou o char, tem como mudar isso??

leandroferro

Número de Mensagens : 14
Data de inscrição : 03/09/2012
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Mudar SPRITE ou OBJETO de acordo com uma variável

Mensagem por moisesBR em Qui 06 Set 2012, 19:33

Kkkkkkkkk!

Parece que vc está usando um draw sprite!
O ruim de mudar de objeto com um change, é que os codes não vão também... Por isso, adotei o sprite index

Voce devia ter um objeto ammo! Assim os codes só vão mexer nele e voce pode até modifica-los através de outro objeto como o char, coisa que é possivel usando um with! Exemplo:
with(obj_ammo) + codes

Tente no novo obj_mmo, num evento draw ou steep:
Código:
sprite_index=spr_ammo image_speed=0 image_index=obj_ammo.ammo

Non deu? adapte! Só tô falando porque consegui isso em último cas....mas em últimpo meeesmo nois faiz uma engine pro C.

"tente outra vez"

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Mudar SPRITE ou OBJETO de acordo com uma variável

Mensagem por leandroferro em Seg 10 Set 2012, 10:48

Perfeito funcionou, obrigado. Logo eu posto o resultado..Abraços

Pode fechar Moderador

leandroferro

Número de Mensagens : 14
Data de inscrição : 03/09/2012
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Mudar SPRITE ou OBJETO de acordo com uma variável

Mensagem por Conteúdo patrocinado Hoje à(s) 16:30


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