Página 1 de 1

GameMaker não reconhece string

Enviado: Dom Dez 11, 2016 4:41 pm
por Zero
Eu tenho uma string ca_sol[1,1], esses indices variam até 12. Eu salvo o  indice ca_sol[i,j] em uma variavel, ex: str=ca_sol[i,j]. Quando tento utilizar essa variavel com funções de string, ele me retorna um erro dizendo que a função esperava uma string do tipo YYGS, não sei do q se trata. Ex: string_length(str), retorna o erro dito anteriormente, mas se eu salvar str assim: str=ca_sol[1,1], funciona normalmente, o que é isso?

Re: GameMaker não reconhece string

Enviado: Dom Dez 11, 2016 5:38 pm
por Adilson
tente converte-la, usando a função string
Exemplo:

Código: Selecionar todos

str = string(ca_sol[i,j]);//converter para string
size = string_length(str);//pega o numero de caracteres da  str convertida, simmmples :)

Re: GameMaker não reconhece string

Enviado: Dom Dez 11, 2016 8:57 pm
por Zero
Eu ja havia tentado, mas não funciona tb :/
A variável é uma string.

Re: GameMaker não reconhece string

Enviado: Dom Dez 11, 2016 9:19 pm
por Lima Loucão
Quando você adiciona assim: str=ca_sol[i,j], mande este código logo abaixo: show_debug_message(str) e veja se ela é realmente uma string. Mostre-nos como você está tentando utilizar a variável com funções de string...

Re: GameMaker não reconhece string

Enviado: Dom Dez 11, 2016 11:15 pm
por Zero
Este é o código :

Código: Selecionar todos

var pos_fix=58, char, left, fim, pos, str, count=0;
for(i=1;i<=12;i++)
{
    for(j=1;j<=12;j++)
    {
        str=ca_sol[i,j];
        show_debug_message(str);
        fim=false;
        pos=pos_fix;
        left=false;
        while !fim
        {
            if !left
            {
                char=string_char_at(str,pos);
                if (char=" ")
                {
                    str=string_delete(str,pos,1);
                    str=string_insert("#",str,pos);
                    pos+=pos_fix;
                    count++;
                }
                else
                    left=true;   
            }
            else
            {
                pos--;
                char = string_char_at(str,pos);
                if (char = " ")
                {
                    str=string_delete(str,pos,1);
                    str=string_insert("#",str,pos);
                    left = false;
                    pos+=pos_fix;
                    count++;
                }  
            }
            if (pos>string_length(str))
            {
                fim=true; 
                ca_sol[i,j]=str;  
            }
        }
    }
}
A ideia é que ele quebre o texto pra sempre caber na minha tela. Mas acontece o problema descrito.
str fica em forma de string e ca_sol é uma variavel que guarda um texto e ela vai de [1..12,1..12].

Re: GameMaker não reconhece string

Enviado: Dom Dez 11, 2016 11:33 pm
por Lima Loucão
Você quer quebrar um texto toda vez que ele chega no final da sua tela? Já tentou usar a função: draw_text_ext?
draw_text_ext(x,y,texto para desenhar, distância em pixels entre as linhas, tamanho em pixels antes do texto quebrar)

Re: GameMaker não reconhece string

Enviado: Seg Dez 12, 2016 12:38 am
por Zero
Sim, mas não pode quebrar do nada, só quando tiver um espaço, se não a palavra fica quebrada.
Testando vaaaaarias coisas, descobri o problema. O problema era que um dos textos tinha um texto dentro, tipo o simbolo de aspas xD