[Resolvido]ajuda com inimigo

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

Resolvido [Resolvido]ajuda com inimigo

Mensagem por GuiEdu em Seg 04 Out 2010, 15:23

Gente, meu problema é o seguinte: criei um obj_inimigo; qndo ele colide com o tiro ele congela por determinado tempo e a variável inimigo_normal passa a ser false, então criei um alarm[0]; enquanto inimigo_normal for = false o sprite tem que ser spr_inimigo_parado e qndo voltar a ser true, sprite = inimigo1_normal.Entendem???
Aí eu fiz assim:
Código:
while (inimigo_normal = false)
{
    sprite_index = inimigo_parado
}
só que ao colidir com o tiro, o jogo trava =/
O que tá errado?Tem outro jeito de fazer isso, já tentei assim tbm
Código:
if inimigo_normal = false {sprite_index = inimigo_parado} else {sprite_index = inimigo1_normal}
só que o inimigo some, nem aparece na room =/
me ajudem pf Happy


Última edição por GuiEdu em Qua 06 Out 2010, 23:35, editado 2 vez(es)

GuiEdu

Número de Mensagens : 505
Idade : 23
Data de inscrição : 04/06/2010
Reputação : 0
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]ajuda com inimigo

Mensagem por CRP-Max em Seg 04 Out 2010, 15:44

Na primeira situação você criou um laço, enquanto a variável inimigo_normal for false ela vai ser executada eternamente.
Na segunda, tem um erro no sprite: veja em vermelho.

if inimigo_normal = false {sprite_index = inimigo_parado} else {sprite_index = inimigo1_normal}

Por esse motivo o sprite some...

Espero ter ajudado.

CRP-Max

Ranking : Nota C
Número de Mensagens : 819
Idade : 41
Data de inscrição : 28/10/2008
Notas recebidas : C
Reputação : 29
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]ajuda com inimigo

Mensagem por GuiEdu em Seg 04 Out 2010, 16:38

No
o nome inimigo1_normal é um sprite e inimigo_normal é a variável crida no create do obj inimigo_1, sacou? se eu colocar nomes iguais vai dar problema...
Minha maior dúvida msm é pq num dá com o while, pois a lógica está correta:
Código:
enquanto inimigo_normal = false  { imagem = inimigo parado} //não está em gml, claro, é só a lógica da situação

GuiEdu

Número de Mensagens : 505
Idade : 23
Data de inscrição : 04/06/2010
Reputação : 0
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]ajuda com inimigo

Mensagem por Gabreel em Seg 04 Out 2010, 17:36

Olha cara, a segunda era pra funcionar...
as variáveis foram declaradas direito?
o sprite ta com o nome certo?
tenta..
if(inimigo_normal=true){sprite_index=inimigo1_normal;}else{sprite_index=inimigo_parado;}

é tipo tirar a prova real x;

Gabreel

Número de Mensagens : 2227
Idade : 20
Data de inscrição : 02/10/2009
Reputação : 52
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]ajuda com inimigo

Mensagem por Janx em Seg 04 Out 2010, 18:19

while (inimigo_normal = false)
{
sprite_index = inimigo_parado
}

O while vai repetir até que a expressão "inimigo_normal = false" seja falsa, ou seja, até que inimigo_normal receba o valor true.
Mas como o código é apenas
sprite_index = inimigo_parado
e em momento algum a variavel inimigo_normal é alterada, o loop nunca acaba e o jogo trava.
Use um if no lugar de while. Não tem porque usar while nesse caso.

Janx

Número de Mensagens : 2417
Idade : 23
Data de inscrição : 24/05/2008
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]ajuda com inimigo

Mensagem por GuiEdu em Qua 06 Out 2010, 13:49

Bem, não tava dando com if pq o sprite sumia, daí eu criei outro obj e usei instance_change.
Agora surgiu outra dúvida: por exemplo, o inimigo tem que tomar 4 tiros para morrer; só que se ele já tomou 2, ao mudar para inimigo_parado esse valor tem que ser mantido.Como fazer? Tem um esquema que se faz usando PARENT num tem, como eu faria nesse caso, para que a vida seja controlada por esse obj (obj_parent), por exemplo?

GuiEdu

Número de Mensagens : 505
Idade : 23
Data de inscrição : 04/06/2010
Reputação : 0
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]ajuda com inimigo

Mensagem por Janx em Qua 06 Out 2010, 16:28

Use uma variavel global para a vida. A variavel global não será "destruida" junto do objeto. Lembre-se de NÃO setar ele no create do objeto, senão ele ficará "recuperando" vida. Inicie só quando o personagem nasce pela primeira vez ou ganha vida.
Código:
global.vida = 4;

colisão com o tiro:
Código:
global.vida -= 1;

verificar se morreu:
Código:
if global.vida <= 0
{
//morreu
}

Janx

Número de Mensagens : 2417
Idade : 23
Data de inscrição : 24/05/2008
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]ajuda com inimigo

Mensagem por GuiEdu em Qua 06 Out 2010, 16:50

Janx escreveu:Use uma variavel global para a vida. A variavel global não será "destruida" junto do objeto. Lembre-se de NÃO setar ele no create do objeto, senão ele ficará "recuperando" vida. Inicie só quando o personagem nasce pela primeira vez ou ganha vida.
Código:
global.vida = 4;

colisão com o tiro:
Código:
global.vida -= 1;

verificar se morreu:
Código:
if global.vida <= 0
{
//morreu
}
Eu tinha tentado com global, mas acontece que qndo um inimigo moprre, todos os outros morrem tbm, pois tem mais de um desse inimigo na room.
Só se eu estiver criando errado Razz se puder explicar mais detalhadamente, agradeço Happy

GuiEdu

Número de Mensagens : 505
Idade : 23
Data de inscrição : 04/06/2010
Reputação : 0
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]ajuda com inimigo

Mensagem por Janx em Qua 06 Out 2010, 19:24

Ahh, você está fazendo isso para o inimigo... O melhor jeito seria não usar o instance change. =/
Com ele você perde todas as variaveis do outro objeto.

Janx

Número de Mensagens : 2417
Idade : 23
Data de inscrição : 24/05/2008
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]ajuda com inimigo

Mensagem por Super Games em Qua 06 Out 2010, 19:50

Tenta usar a função Sleep para fazer o tempo que ficarra comgelado.

Espero ter ajudado!

Super Games

Ranking : Nota D
Número de Mensagens : 2704
Idade : 18
Data de inscrição : 10/06/2010
Notas recebidas : D
Reputação : 10
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]ajuda com inimigo

Mensagem por Mr. Kaleb em Qua 06 Out 2010, 20:50

Tenta fazer assim (n sei se ta certo num so bom em GML):

if global.vida <= 0
instance_destroy()

Acho que assim vai morrer so o que colidiu com o tiro (num sei se ta certo)

Mr. Kaleb

Ranking : Nota C
Número de Mensagens : 1400
Idade : 19
Data de inscrição : 07/09/2010
Notas recebidas : C
Reputação : 21
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]ajuda com inimigo

Mensagem por GuiEdu em Qua 06 Out 2010, 22:53

Gente, aconteceu um milagre shauhsauhuahsua
O inimigo parou de sumir do nada o.O"
como estava "resetando" a configuração das variáveis eu fiz um unico inimigo e usei if, e deu certo, axo que eu estava na nóia e__e" kkkkk
vlw janx pela ajuda, vlw SG vlw TGNF RESOLVIDO flw
Podem trancar, por favor.

GuiEdu

Número de Mensagens : 505
Idade : 23
Data de inscrição : 04/06/2010
Reputação : 0
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]ajuda com inimigo

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


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