Conectar-se
Quem está conectado
27 usuários online :: 3 usuários cadastrados, Nenhum Invisível e 24 Visitantes

rafaelviodres1, Tedi Ripper, Willy

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota C
Notas recebidas : C + C
Data de inscrição : 19/10/2011
Número de Mensagens : 337
Insígnias de JAM :

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

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

Transformar string em real

em Ter 01 Maio 2012, 15:22
Fala ai moçada, então, eu estou tentado transformar um numero maior em decimal, como por exemplo :
Código:
542 vira 0.542
Mas o problema, é que não está dando certo, eu já tentei desse jeito : 0.+valor
Desse jeito '0.'+valor
Desse jeito string(0.)+valor

Lembrando que o valor, é definido por várias variáveis junto a scripts, veja :
Código:
scr_concatena(scr_arruma_tempo(global.minuto,false),scr_arruma_tempo(global.segundo,false),scr_arruma_tempo(global.milesimo,true))
Bem, o script concatena foi o que o Pedro me passou para Juntar os valores, e o Arruma tempo, serve para deixar os "0", por exemplo 8 vira 08, serve mais para o Draw.
O Problema é que eu não to conseguindo, eu não sei se é Bug do GM, ou Bug do Thiago.

Até! albino


Última edição por Funkbuster em Qui 03 Maio 2012, 11:06, editado 3 vez(es)
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6036
Insígnias de JAM :

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

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

Re: Transformar string em real

em Ter 01 Maio 2012, 15:53
Tente '0.' + string(valor).
avatar
Ranking : Nota C
Notas recebidas : C + C
Data de inscrição : 19/10/2011
Número de Mensagens : 337
Insígnias de JAM :

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

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

Re: Transformar string em real

em Ter 01 Maio 2012, 16:04
Deu certo pela metade Pedro, Tipo no tempo 00:09:654, ele virou 0,9654
Desse jeito 10 segundo seria menor que 2...

Edit : Talvez se eu adicionar os 0 conforme quantos dígitos tem de certo, vou testar aqui
Edit_2 : Exatamente, deu certo, valeu Pedro, pode fechar o tópico.

Eis o código:

Código:
tempo=scr_concatena(scr_arruma_tempo(global.minuto,false),scr_arruma_tempo(global.segundo,false),scr_arruma_tempo(global.milesimo,true))

if string_length(string(tempo))=1 then tempo='0.000000'+string(tempo)
if string_length(string(tempo))=2 then tempo='0.00000'+string(tempo)
if string_length(string(tempo))=3 then tempo='0.0000'+string(tempo)
if string_length(string(tempo))=4 then tempo='0.000'+string(tempo)
if string_length(string(tempo))=5 then tempo='0.00'+string(tempo)
if string_length(string(tempo))=6 then tempo='0.0'+string(tempo)
if string_length(string(tempo))=7 then tempo='0.'+string(tempo)

Deu outro erro, quando eu fui verificar os valores :
Código:

___________________________________________
ERROR in
action number 2
of  Step Event
for object obj_final_fase:

Error in code at line 23:
  if tempo<=0.0010000 then ini_write_real("Levels","Level_1",0);
            ^
at position 12: Cannot compare arguments.

Can't compare arguments, o que isso significa? E como resolver?
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6036
Insígnias de JAM :

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

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

Re: Transformar string em real

em Ter 01 Maio 2012, 16:34
Por que não dá para comparar números com strings.
Converta a string em numero usando real().
avatar
Ranking : Nota C
Notas recebidas : C + C
Data de inscrição : 19/10/2011
Número de Mensagens : 337
Insígnias de JAM :

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

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

Re: Transformar string em real

em Qua 02 Maio 2012, 20:49
Eu suspeitei que até fosse isso, mas eu não consigo encontrar outro código real, alem de real, agora eu estou em dúvida de como converter porquê... Eu não sei como fazer isso :/ Se alguém puder me ajudar, eu vou ficar muito feliz x3 =)

Até! flw
avatar
Ranking : Sem avaliações
Data de inscrição : 08/06/2008
Número de Mensagens : 2314
Insígnias de JAM :

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

Prêmios
   : 3
   : 0
   : 1
Ver perfil do usuáriohttp://blackcapapps.blogspot.com.br/

Re: Transformar string em real

em Qui 03 Maio 2012, 11:51
Pare ai, não to entendendo o que você está fazendo.
Está querendo só formatar, comparar tempo que alguma coisa, ou transformar o tempo já formatado?
avatar
Ranking : Nota C
Notas recebidas : C + C
Data de inscrição : 19/10/2011
Número de Mensagens : 337
Insígnias de JAM :

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

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

Re: Transformar string em real

em Qui 03 Maio 2012, 19:43
Vish, agora tá dificil de explicar, mas antes, eu queria que tivesse um 0, no numero, até ai tudo bem, mas eu queria usar IFs coisa e tal, para ver se tem record de tempo, só que daí, eu só consegui usando Strings! E com strings eu não posso fazer :
Código:
if tempo<0,000134765 then medalhadaamizade=true
Entendeu?
avatar
Ranking : Sem avaliações
Data de inscrição : 08/06/2008
Número de Mensagens : 2314
Insígnias de JAM :

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

Prêmios
   : 3
   : 0
   : 1
Ver perfil do usuáriohttp://blackcapapps.blogspot.com.br/

Re: Transformar string em real

em Sex 04 Maio 2012, 16:06
Você deveria evitar de usar números com mais de duas casas decimais no GM.
Se você precisa checar ou exibir tempo foque-se mais em milisegundos.

Um script que fiz:
Código:
// time_step(steps,fps);
// retorna string com tempo

var str,s,m,h;
str = '';

s = floor((argument0/argument1) mod 60);
m = floor(((argument0/argument1)/60) mod 60);
h = floor((((argument0/argument1)/60)/60));

if h < 10 str += '0'+string(h);
else str += string(h);
str += ':';
if m < 10 str += '0'+string(m);
else str += string(m);
str += ':';
if s < 10 str += '0'+string(s);
else str += string(s);

return str;
Esse script é baseado na quantidade de steps para contar o tempo.
Por exemplo quando uma fase começa você defini um variável tempo como 0 e a cada step aumenta mais um, então use o script caso a room_speed seja 60:
Código:
// 1 segundo = 60 frames
draw(x,y,time_step(tempo,60))
Isso previne que mesmo se o jogador ou você (para debug) aumentar a velocidade do jogo o tempo estará de acordo.
Se quer tempo real com as variaveis de tempo do GM é so definir o fps para 1000 (1 segundo = 1000 milisegundos).

Na hora de checar pontuação é fácil:
Código:
if tempo < 60*60 medalha = medalha_de_1minuto;
// ou
if tempo < 60*1000 medalha = medalha_de_1minuto;

Não é uma boa idéia transformar o tempo em string e depois usar essa string pra comparação.
O ideal nesse caso, assim como mostrei, é uma variável unica que contem o valor do tempo e trabalhar só encima dela afinal é muito mas fácil guardar 6020 segundos do que 1 hora, 40 minutos e 20 segundos.
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