Conectar-se
Quem está conectado
36 usuários online :: 4 usuários cadastrados, Nenhum Invisível e 32 Visitantes

Akutarex9, Ismaelgames7, Koelho, Thiago_o_programador

Ver toda a lista


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

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

[Resolvido]ajuda com inimigo

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)
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 28/10/2008
Número de Mensagens : 819
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: [Resolvido]ajuda com inimigo

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.
avatar
Data de inscrição : 04/06/2010
Número de Mensagens : 505
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: [Resolvido]ajuda com inimigo

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

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: [Resolvido]ajuda com inimigo

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;
avatar
Data de inscrição : 24/05/2008
Número de Mensagens : 2417
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: [Resolvido]ajuda com inimigo

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.
avatar
Data de inscrição : 04/06/2010
Número de Mensagens : 505
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: [Resolvido]ajuda com inimigo

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?
avatar
Data de inscrição : 24/05/2008
Número de Mensagens : 2417
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: [Resolvido]ajuda com inimigo

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
}
avatar
Data de inscrição : 04/06/2010
Número de Mensagens : 505
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: [Resolvido]ajuda com inimigo

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
avatar
Data de inscrição : 24/05/2008
Número de Mensagens : 2417
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: [Resolvido]ajuda com inimigo

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.
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 10/06/2010
Número de Mensagens : 2704
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: [Resolvido]ajuda com inimigo

em Qua 06 Out 2010, 19:50
Tenta usar a função Sleep para fazer o tempo que ficarra comgelado.

Espero ter ajudado!
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 07/09/2010
Número de Mensagens : 1400
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: [Resolvido]ajuda com inimigo

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)
avatar
Data de inscrição : 04/06/2010
Número de Mensagens : 505
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: [Resolvido]ajuda com inimigo

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.
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