Perder vida a cada 2 segundos

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

Perder vida a cada 2 segundos

Mensagem por cubano9999 em Dom 11 Nov 2012, 16:30

Gente eu gostaria de saber o seguinte, se puderem me ajudar ficarei muito feliz pois não sei como fazer isso. Valeu Happy

cubano9999

Ranking : Nota E
Número de Mensagens : 131
Data de inscrição : 20/06/2012
Notas recebidas : E+E
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Perder vida a cada 2 segundos

Mensagem por Luca$ em Dom 11 Nov 2012, 16:36

Tipo como se ele tivesse sangrando né?

Cria uma variável para saber se ele está ou não "sangrando",dai é só criar um alarm a cada 2 segundos para remover
EX:

Create:
Código:
sangrando=false
alarm[0]=60


Alarm 0:
Código:
if sangrando=true
{
vida-=10
}
alarm[0]=60


Pronto Smile

Luca$

Ranking : Nota D
Número de Mensagens : 582
Data de inscrição : 10/10/2010
Notas recebidas : D-C
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Perder vida a cada 2 segundos

Mensagem por cubano9999 em Dom 11 Nov 2012, 16:49

Luca$ escreveu:Tipo como se ele tivesse sangrando né?

Cria uma variável para saber se ele está ou não "sangrando",dai é só criar um alarm a cada 2 segundos para remover
EX:

Create:
Código:
sangrando=false
alarm[0]=60


Alarm 0:
Código:
if sangrando=true
{
vida-=10
}
alarm[0]=60


Pronto Smile

Mais cara onde eu coloco esse codigos no obj quadrado ou no redondo,e eu coloco onde, na colisão com o objeto quadrado? Valeu Happy desculpa se eu to perguntando demais é que eu não sei muitas coisas no GM.

cubano9999

Ranking : Nota E
Número de Mensagens : 131
Data de inscrição : 20/06/2012
Notas recebidas : E+E
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Perder vida a cada 2 segundos

Mensagem por Luca$ em Dom 11 Nov 2012, 18:48

Ponha esses 2 códigos no objeto quadrado.
Adicione mais esse código:

Objeto:Quadrado
Evento:Colisão com o objeto redondo

Código:
sangrando=true

Luca$

Ranking : Nota D
Número de Mensagens : 582
Data de inscrição : 10/10/2010
Notas recebidas : D-C
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Perder vida a cada 2 segundos

Mensagem por willcraft2 em Dom 11 Nov 2012, 18:53

Bom você não sabe nem na onde deve por as coisas, recomendo você ler os tutoriais:

FAQ
Indice de Tutoriais

willcraft2

Ranking : Nota D
Número de Mensagens : 682
Idade : 16
Data de inscrição : 06/04/2012
Notas recebidas : D + D
Reputação : 42
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Perder vida a cada 2 segundos

Mensagem por Zero. em Dom 11 Nov 2012, 21:43

No exemplo do amigo lucas, ele não perderá vida a cada 2 seg pq sempre q sangrando for true alarm[0]=60 ou seja alarm[0] vai ser sempre 60.
Faça assim:

No create do quadrado:
Código:
sangrando=false // define se está ou não sangrando
s_define=false // aqui será para ele perder a cada 2 seg
obj_colide=false // obj que ele irá colidir que q se n existir irá faze-lo parar de sangrar

Na colisão com o obj_bola:
Código:
obj_colide=other.id
sangrando=true

No Step:

Código:
if sangrando=true and s_define=false and instance_exists(obj_colide) // checa se ele está sangrando se a contagem de 2 seg ainda está acontecendo (s_define) e se a bola ainda existe
{alarm[0]=60
s_define=true}

if !instance_exists(obj_colide) // se o obj_bola não estiver mais na room
{sangrando=false
s_define=false}

E No alarm[0] :

Código:
hp-=2
s_define=false

Espero que entenda Happy !

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Perder vida a cada 2 segundos

Mensagem por PedroX em Dom 11 Nov 2012, 22:25

Ou simplesmente no Step:

Código:
if ((current_time mod 60)==0)
health -=  10;

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Perder vida a cada 2 segundos

Mensagem por Zero. em Dom 11 Nov 2012, 22:32

*---* Me ensina como usar esse current time e pra que serve o mod ?

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Perder vida a cada 2 segundos

Mensagem por PedroX em Dom 11 Nov 2012, 22:40

current_time -> É um valor que indica quanto tempo o sistema está ativo, em milésimos. Ajuda a calcular quanto tempo certas funções gastam.

mod -> Retorna o resto da divisão. Se for 0, é porque é um divisor.

Código:
5 mod 4 = 1
8 mod 5 = 3
9 mod 2 = 1
2 mod 2 = 0 //2 é divisor de 2

Ou seja, suponha que current_time é 1200. Então o resto da divisão é 0. Só depois de 60 milésimos que o resto será 0, já que os números entre 1201-1259 não dividem 60. Depois só no 1320 e assim vai.

Corrigindo meu código:
Código:
if ((current_time mod 2000)==0)
health -=  10;

Irá ocorrer em múltiplos de 2000 apenas (a cada 2 segundos).

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Perder vida a cada 2 segundos

Mensagem por Zero. em Dom 11 Nov 2012, 23:02

Ok entendi, só não entendi o modo de uso, dá para escrever o código em palavras por favor *---* ?

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Perder vida a cada 2 segundos

Mensagem por yiahooo em Seg 12 Nov 2012, 10:05

de timeline e moment 40 set lives -2 relativeva no objeto que tem a vida set timeline no create e de loop true

yiahooo

Ranking : Nota E
Número de Mensagens : 155
Idade : 16
Data de inscrição : 06/04/2012
Notas recebidas : E
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.yiahooo.no.comunidades.net

Voltar ao Topo Ir em baixo

Re: Perder vida a cada 2 segundos

Mensagem por Alex FC em Seg 12 Nov 2012, 12:29

Só um pequeno detalhe Pedro, o current_time nem sempre dá o resultado esperado. Isso ocorre porque o tempo da máquina flui livremente independente do que ocorra. Caso haja um mínima queda de frame (Ex: room_speed é 30 e cai para 29, ou seja um slow down) já ocorre o risco de (current_time mod 2000)==0 não funcionar, pois "perdeu" o frame de vista.

Logo seria mais sábio criar uma variável de tempo de jogo e não de tempo de máquina que faça a mesma função. Ou seja, uma global que na ultima linha do evento Draw (Por ser o último loop) seja adicionada +1 à ela.

Então nosso amigo deve fazer o seguinte:

No evento Other>Game Start do objeto controle (Tem que estar sempre na room) colocar:
Código:
global.frames=0
Ainda no mesmo objeto no evento Draw na última linha de código:
Código:
global.frames+=1
No evento de colisão do retângulo com a bola:

Código:
if (global.frames mod (fps*2))==0
{
health-=10
}

Bom, não testei, mas deve funcionar.

FLWS!

Alex FC

Ranking : Nota A
Número de Mensagens : 2503
Idade : 23
Data de inscrição : 20/12/2008
Notas recebidas : B A
Reputação : 174
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://redscreensoft.blogspot.com

Voltar ao Topo Ir em baixo

Re: Perder vida a cada 2 segundos

Mensagem por Luca$ em Seg 12 Nov 2012, 13:35

Flyaway,não cheguei a testar,mas acho que o meu código funciona sim,não?

Porque a variavel é setada quando ele colide com o outro objeto,mas,o alarme não é ativado na colisão.

Me corrija se estiver errado...

Luca$

Ranking : Nota D
Número de Mensagens : 582
Data de inscrição : 10/10/2010
Notas recebidas : D-C
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Perder vida a cada 2 segundos

Mensagem por Zero. em Seg 12 Nov 2012, 14:51

Sim,sim está correto.
É que pensei que o código era no step e não no alarm[0] mas o problema é que o alarm ficará sempre contando. e a bola sumir e para de sangrar e outra bola aparecer e tocar nele o tempo ja estará contando.

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Perder vida a cada 2 segundos

Mensagem por Conteúdo patrocinado Hoje à(s) 15:57


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