Conectar-se
Quem está conectado
25 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 24 Visitantes

WellingtonBecker

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 28/03/2012
Número de Mensagens : 15
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Erro no codigo...

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 )

avatar
Data de inscrição : 18/01/2012
Número de Mensagens : 85
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1

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

Re: Erro no codigo...

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!
avatar
Data de inscrição : 07/03/2010
Número de Mensagens : 426
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 13

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

Re: Erro no codigo...

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.
avatar
Data de inscrição : 02/03/2012
Número de Mensagens : 192
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 4

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

Re: Erro no codigo...

em Qua 28 Mar 2012, 13:29
fassa como Klior está a dizer que fica melhor.

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