GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» player não consegue andar
por lovn7 Qui 21 Nov 2024, 13:33

» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22

» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31

» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23

» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49

» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58

» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36

» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36

» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33

» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51

» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28

» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18

» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08

» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10

» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16

» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40

» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01

» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45

» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34

» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28

» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48

» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54

» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14

» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50


[Resolvido]ajuda com inimigo

+2
CRP-Max
GuiEdu
6 participantes

Ir para baixo

[Resolvido]ajuda com inimigo Empty [Resolvido]ajuda com inimigo

Mensagem por GuiEdu 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
GuiEdu

Data de inscrição : 04/06/2010
Reputação : 0
Número de Mensagens : 505
Prêmios : [Resolvido]ajuda com inimigo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Resolvido]ajuda com inimigo Empty Re: [Resolvido]ajuda com inimigo

Mensagem por CRP-Max 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. [Resolvido]ajuda com inimigo 582388
CRP-Max
CRP-Max

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 28/10/2008
Reputação : 29
Número de Mensagens : 822
Prêmios : [Resolvido]ajuda com inimigo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Resolvido]ajuda com inimigo Empty Re: [Resolvido]ajuda com inimigo

Mensagem por GuiEdu 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
GuiEdu

Data de inscrição : 04/06/2010
Reputação : 0
Número de Mensagens : 505
Prêmios : [Resolvido]ajuda com inimigo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Resolvido]ajuda com inimigo Empty Re: [Resolvido]ajuda com inimigo

Mensagem por Gabreel 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
Gabreel

Data de inscrição : 02/10/2009
Reputação : 52
Número de Mensagens : 2232
Prêmios : [Resolvido]ajuda com inimigo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • Outros


Ir para o topo Ir para baixo

[Resolvido]ajuda com inimigo Empty Re: [Resolvido]ajuda com inimigo

Mensagem por Janx 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
Janx

Data de inscrição : 24/05/2008
Reputação : 14
Número de Mensagens : 2417
Prêmios : [Resolvido]ajuda com inimigo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 0

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

Ir para o topo Ir para baixo

[Resolvido]ajuda com inimigo Empty Re: [Resolvido]ajuda com inimigo

Mensagem por GuiEdu 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
GuiEdu

Data de inscrição : 04/06/2010
Reputação : 0
Número de Mensagens : 505
Prêmios : [Resolvido]ajuda com inimigo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Resolvido]ajuda com inimigo Empty Re: [Resolvido]ajuda com inimigo

Mensagem por Janx 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
Janx

Data de inscrição : 24/05/2008
Reputação : 14
Número de Mensagens : 2417
Prêmios : [Resolvido]ajuda com inimigo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 0

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

Ir para o topo Ir para baixo

[Resolvido]ajuda com inimigo Empty Re: [Resolvido]ajuda com inimigo

Mensagem por GuiEdu 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
GuiEdu

Data de inscrição : 04/06/2010
Reputação : 0
Número de Mensagens : 505
Prêmios : [Resolvido]ajuda com inimigo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Resolvido]ajuda com inimigo Empty Re: [Resolvido]ajuda com inimigo

Mensagem por Janx 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
Janx

Data de inscrição : 24/05/2008
Reputação : 14
Número de Mensagens : 2417
Prêmios : [Resolvido]ajuda com inimigo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 0

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

Ir para o topo Ir para baixo

[Resolvido]ajuda com inimigo Empty Re: [Resolvido]ajuda com inimigo

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

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

Espero ter ajudado!
Super Games
Super Games

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 10/06/2010
Reputação : 36
Número de Mensagens : 2800
Prêmios : [Resolvido]ajuda com inimigo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Java
  • Godot
  • Javascript
  • C ou C++


Ir para o topo Ir para baixo

[Resolvido]ajuda com inimigo Empty Re: [Resolvido]ajuda com inimigo

Mensagem por Mr. Kaleb 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
Mr. Kaleb

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 07/09/2010
Reputação : 21
Número de Mensagens : 1400
Prêmios : [Resolvido]ajuda com inimigo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Resolvido]ajuda com inimigo Empty Re: [Resolvido]ajuda com inimigo

Mensagem por GuiEdu 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
GuiEdu

Data de inscrição : 04/06/2010
Reputação : 0
Número de Mensagens : 505
Prêmios : [Resolvido]ajuda com inimigo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Resolvido]ajuda com inimigo Empty Re: [Resolvido]ajuda com inimigo

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos