Erro no codigo...

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

Erro no codigo...

Mensagem por loja em Qua 28 Mar 2012, 10:56

Estou a escrever de outro computador por isso nao tenho 100% a certesa se o codigo é este pois nao tenho meio para o testar.
olá eu fiz um codigo para descontar o tempo, ( segundos e minutos ) começa com 3 minutos.

No creat
Código:
global.segundos=60
global.minutos=2
alarm[0]=30
No alarme
Código:
global.segundos-=1
alarm[0]=30
No step
Código:
if (global.segundos) = 0
{global.segundos=60
global.minutos-=1}
e o draw, mas nao interessa

depois modificei para que quando segundos e minutos fossem 0 o jogo acabasse e no spet adicionei
No step
Código:
tempo=global.minutos+global.segundos
if (tempo) = 0
{acaba o jogo lol...}

Mas depois eu fiz um botao que acrescentava 30 segundos ao tempo, logo tinha de alterar o codigo pq ( 50+30=80, e nao posso por 80 segundos logo acrescenteu ao step

Step

Código:
tempo60=global.segundos-60
if (global.segundos) >60
{global.segundos = tempo60
global.minutos+=1}

e ai esta o problema quando junto tudo, quando segundos fica igual a zero e o tempo fica negativo (WTF)

P.S. Todo junto ficaria assim

No creat
Código:
global.segundos=60
global.minutos=2
alarm[0]=30
No alarme
Código:
global.segundos-=1
alarm[0]=30
No step
Código:
if (global.segundos) = 0
{global.segundos=60
global.minutos-=1}
tempo=global.minutos+global.segundos
if (tempo) = 0
{acaba o jogo lol...}
tempo60=global.segundos-60
if (global.segundos) >60
{global.segundos = tempo60
global.minutos+=1}


Uma duvida o codigo nao esta bem!!!!!!!..... MAS O TEMPO FICA NEGATIVO ( sory caps lock )


loja

Número de Mensagens : 15
Data de inscrição : 28/03/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Erro no codigo...

Mensagem por fbixd em Qua 28 Mar 2012, 11:33

Olha eu mudei bastante o código,mas vê se é isso que você quer:

Create:
Deixa o mesmo

Alarm0
Deixa o mesmo

Step
Código:
if global.segundos = 0 and global.minutos >0
{
global.segundos=60
global.minutos-=1
}
else if global.segundos = 0 and global.minutos=0
{
game_end()
}
Drawcoloquei um assim ok?
Código:
draw_text(x,y,"Tempo: " + string(global.minutos)+" " + string(global.segundos))

Veja se é isso cara!E me diga!

fbixd

Número de Mensagens : 85
Idade : 17
Data de inscrição : 18/01/2012
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: Erro no codigo...

Mensagem por Klior em Qua 28 Mar 2012, 11:56

Para uma maior precisão, velocidade e flexibilidade no código sugiro que use somente os segundos e a partir dos segundos descubra os minutos, vou explicar como:

create:
Código:
segundos = 300;
//300 / 60 = 5 minutos
alarm[0] = room_speed;

alarm0:
Código:
if (segundos > 0) {
  segundos -= 1;
}
else {
  room_restart();
  //Fim de jogo
}
alarm[0] = room_speed;

draw:
Código:
draw_text(x, y, string(floor(segundos / 60)) + " : " + string(segundos mod 60));

para adicionar mais tempo basta adicionar qualquer valor a variável segundos que será calculado os minutos e segundos automaticamente

floor(segundos / 60)
floor arredonda o valor para um numero inteiro menor que o valor.
ou seja floor(3,1) = 3; floor(3,9999) = 3;
Resumindo apaga tudo depois da virgula.

mod está retornando a sobra da divisão
exemplo 355 mod 60 = 55;
para entender melhor sobre mod, basta se recordar das contas de divisão feitas no caderno sem calculadora.

Klior

Número de Mensagens : 426
Idade : 25
Data de inscrição : 07/03/2010
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Erro no codigo...

Mensagem por kadini em Qua 28 Mar 2012, 13:29

fassa como Klior está a dizer que fica melhor.


kadini

Número de Mensagens : 192
Idade : 20
Data de inscrição : 02/03/2012
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Erro no codigo...

Mensagem por Conteúdo patrocinado Hoje à(s) 16:17


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