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
» Retorno da GMBR!!!
por theguitarmester Ter 19 Mar 2024, 22:38

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16

» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05

» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55

» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39

» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28

» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01


Parar event depois de rodar uma vez

3 participantes

Ir para baixo

Parar event depois de rodar uma vez Empty Parar event depois de rodar uma vez

Mensagem por Nimsay Qua 24 Abr 2013, 17:48

O player perde pontos e vida quando colide com o inimigo. Porém, como o inimigo não morre nessa colisão, a contagem de pontos e vidas vai diminuindo gradativamente enquanto os dois objetos ainda estão encostados. Ou seja, ao invés de perder apenas cem pontos e uma vida, o player acaba perdendo oitocentos pontos e oito vidas.
Preciso de uma ajuda para que o event pare de rodar depois que tira os cem pontos e uma vida, de modo que não fique em loop, tirando vários pontos e vidas. Lembrando que esse event deve voltar a rodar quando outra instância do objeto inimigo for criada.

Valeu!
Nimsay
Nimsay

Data de inscrição : 24/04/2013
Reputação : 0
Número de Mensagens : 7
Prêmios : Parar event depois de rodar uma vez 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

Parar event depois de rodar uma vez Empty Re: Parar event depois de rodar uma vez

Mensagem por RafaelCazarotto Qua 24 Abr 2013, 20:22

é só usar uma variavel, vou tentar fazer aqui de cabeça
no create do player poem assim:
dano=false
na colisão poem assim
if dano=false
{
//aqui vc poem as ações de perder vida e etc...
alarm[0]=10//aqui pode trocar o valor de 10 para o tempo que vc quiser que ele tenha um intervalo de tempo para dar o dano de novo
dano=true
}
no evento de alarm 0 vc poem assim
if dano=true
{
dano=false
}

pronto testa lá e veja se da certo Smile
RafaelCazarotto
RafaelCazarotto

Games Ranking : Nota C

Notas recebidas : D-D-D-C-C-B
Data de inscrição : 15/03/2012
Reputação : 13
Número de Mensagens : 564
Prêmios : Parar event depois de rodar uma vez Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 1

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

Ir para o topo Ir para baixo

Parar event depois de rodar uma vez Empty Re: Parar event depois de rodar uma vez

Mensagem por saim Qui 25 Abr 2013, 09:49

OU você pode armazenar o valor da instância colidida numa variável, de forma que assim que terminar a colisão - e só quando terminar a colisão - ele possa voltar a colidir com a mesma instância.
Assim:
>create<
Código:
colide_com = noone; // não colide com ninguém, no começo
>colisão<
Código:
if (other.id != colide_com){ // se ainda não está colidindo com a instância em questão
colide_com = other; // passa a estar colidindo com ela
// perde pontos, vida, etc.
}
>step< (infelizmente, será preciso o uso do step)
Código:
if (colide_com != noone){ // se existe alguém em colisão
if (!place_meeting(x, y, colide_com)){ // e não estou mais colidindo com esse alguém
colide_com = noone; // passo a não estar colidindo com ninguém
}
}

"E se eu estiver colidindo com duas instâncias ao mesmo tempo?"
Aí, lascou. O valor de colide_com vai ficar mudando e a verificação sempre vai dar que não é aquela instância, causando o mesmo erro que você está experimentando (mas com o dobro da potência). Mas tem como contornar, com arrays. Existe essa possibilidade?
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : Parar event depois de rodar uma vez Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

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

Ir para o topo Ir para baixo

Parar event depois de rodar uma vez Empty Re: Parar event depois de rodar uma vez

Mensagem por Nimsay Qui 25 Abr 2013, 10:18

[RAFAEL]
Coloquei o que passou no objeto player, mas não funcionou. Tô com um pouco de dificuldade para trabalhar com variáveis booleanas dentro do game maker, não acho onde criá-las. Basta escrever em uma linha de código, como fez com "dano=false", que ele já reconhece como uma variável, ou precisa de algo mais?


[SAIM]
Coloquei esses códigos no objeto player, em linhas de código, mas não deu certo. Mudei "other" e "other.id" para os nomes do player e do inimigo, mas não deu certo também. Tem que mudar alguma outra coisa?
Essa questão de colidir com duas instâncias ao mesmo tempo acho que vai ser difícil acontecer, pois estou usando o "test chance" para criar os inimigos, com um espaço de 7 steps para (tentar) fazer com que não hajam dois inimigos na mesma posição simultaneamente.


Valeu, gente!
Nimsay
Nimsay

Data de inscrição : 24/04/2013
Reputação : 0
Número de Mensagens : 7
Prêmios : Parar event depois de rodar uma vez 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

Parar event depois de rodar uma vez Empty Re: Parar event depois de rodar uma vez

Mensagem por RafaelCazarotto Qui 25 Abr 2013, 12:56

eu posso fazer uma engine depois, é que agora to no cel hehehe mas é o seguinte a variavel se nao for global ela tenque ser inicializada, eu uso o Create do objeto para inicializar a variavel, e só coloco o valor que vc quer que ela comece como por exemplo dano=false ae depois ja pode alterar o valor da variavel sem problemas Smile, sobre a engine, vc quer como? é só que o player colida com o monstro e o player nao fique perdendo vida isso?
flw
RafaelCazarotto
RafaelCazarotto

Games Ranking : Nota C

Notas recebidas : D-D-D-C-C-B
Data de inscrição : 15/03/2012
Reputação : 13
Número de Mensagens : 564
Prêmios : Parar event depois de rodar uma vez Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 1

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

Ir para o topo Ir para baixo

Parar event depois de rodar uma vez Empty Re: Parar event depois de rodar uma vez

Mensagem por Nimsay Qui 25 Abr 2013, 13:18

Entendi! Agora deu certo!
Usei "set variable" e "test variable", mas eu precisei verificar duas vezes se a variável é igual a false: uma vez pra tirar pontos e uma vez pra tirar vidas.

Valeu mesmo pelo help!
(:
Nimsay
Nimsay

Data de inscrição : 24/04/2013
Reputação : 0
Número de Mensagens : 7
Prêmios : Parar event depois de rodar uma vez 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

Parar event depois de rodar uma vez Empty Re: Parar event depois de rodar uma vez

Mensagem por RafaelCazarotto Qui 25 Abr 2013, 13:56

Ok entao ;) qualquer coisa eh soh pedir Smile
RafaelCazarotto
RafaelCazarotto

Games Ranking : Nota C

Notas recebidas : D-D-D-C-C-B
Data de inscrição : 15/03/2012
Reputação : 13
Número de Mensagens : 564
Prêmios : Parar event depois de rodar uma vez Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 1

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

Ir para o topo Ir para baixo

Parar event depois de rodar uma vez Empty Re: Parar event depois de rodar uma vez

Mensagem por Nimsay Qui 25 Abr 2013, 13:59

Ok, valeu! (:
Nimsay
Nimsay

Data de inscrição : 24/04/2013
Reputação : 0
Número de Mensagens : 7
Prêmios : Parar event depois de rodar uma vez 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

Parar event depois de rodar uma vez Empty Re: Parar event depois de rodar uma vez

Mensagem por saim Sex 26 Abr 2013, 08:02

Nimsay escreveu:Basta escrever em uma linha de código, como fez com "dano=false", que ele já reconhece como uma variável, ou precisa de algo mais?
Isso basta. O game maker não é mágico? Smile
Mas existem exceções, casos específicos, etc. Tem um tutorial sobre variáveis no game maker na minha assinatura. Nele, eu me aprofundo um pouco mais no assunto.
Nimsay escreveu:Coloquei esses códigos no objeto player, em linhas de código, mas não deu certo. Mudei "other" e "other.id" para os nomes do player e do inimigo, mas não deu certo também. Tem que mudar alguma outra coisa?
Não, era pra funcionar... O que aconteceu de errado? (só de curiosidade; se já está resolvido, não precisa mudar nada)
Nimsay escreveu:Essa questão de colidir com duas instâncias ao mesmo tempo acho que vai ser difícil acontecer, pois estou usando o "test chance" para criar os inimigos, com um espaço de 7 steps para (tentar) fazer com que não hajam dois inimigos na mesma posição simultaneamente.
Cuidado com esse "tentar"... Se a probabilidade for muito pequena de acontecer, ainda assim vai acontecer na hora que você estiver mostrando o jogo pra namorada. GARANTA que não vai acontecer. Por exemplo, dê a todos inimigos uma velocidade constante que não pode ser afetada por mais nada do jogo e faça com que essa velocidade impossibilite o contato com o próximo inimigo criado, em função do espaço de tempo (mínimo) entre suas criações. Aí, sim, você terá certeza que não haverão dois inimigos no mesmo lugar ao mesmo tempo.
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : Parar event depois de rodar uma vez Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

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

Ir para o topo Ir para baixo

Parar event depois de rodar uma vez Empty Re: Parar event depois de rodar uma vez

Mensagem por Nimsay Sex 26 Abr 2013, 10:15

Beleza, vou dar uma olhada mais tarde!

Não lembro bem qual era, mas apareceu uma mensagem de erro quando gerei o executável. Tentei com as variáveis e deu certo, então não cheguei a ficar em cima do código tentando ver porque não funcionou.

HAHAHAHAHAHAHHAH, beleza! Todos os objetos já estão com velocidades constantes e os inimigos são criados a partir de um objeto que se movimenta pela tela, então não tem mesmo como sairem um atrás do outro mesmo que o "test chance" crie eles meio seguidos.

Valeu pela ajuda!
(:
Nimsay
Nimsay

Data de inscrição : 24/04/2013
Reputação : 0
Número de Mensagens : 7
Prêmios : Parar event depois de rodar uma vez 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

Parar event depois de rodar uma vez Empty Re: Parar event depois de rodar uma vez

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