Conectar-se
Quem está conectado
18 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 18 Visitantes

Nenhum

Ver toda a lista


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

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

Prêmios
   : 0
   : 0
   : 1
Ver perfil do usuáriohttp://luizpontes.tk/

Posição do fim no draw_text_ext()

em Sex 03 Ago 2012, 18:07
Olá.
Eu estou tentando fazer um reader de HTML. Então eu preciso que, quando eu colocar outra tag (<b>, por ex.), eu coloque logo depois do fim do texto. Era fácil, só ver a posição com string_width(), e colocar o texto em negrito lá. Só que o texto não é reto, ele vai quebrando quando chega no final da room, com a função draw_text_ext(). Não sei como achar o fim do texto. Aqui está um imagem para melhor entendimento:


Obrigado, espero respostas.
avatar
Ranking : Nota A
Notas recebidas : A+A
Data de inscrição : 20/03/2010
Número de Mensagens : 1134
Insígnias de JAM :

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

Prêmios
   : 1
   : 0
   : 1
Ver perfil do usuáriohttps://www.facebook.com/seito.washiro.7

Re: Posição do fim no draw_text_ext()

em Sex 03 Ago 2012, 19:18
o recomendavel é desenhar os textos manualmente com arrays, não é a forma mais rapida, porem é mais viavel.

ja que você esta fazendo desse jeito tente isso
Código:

str="Olá isto é um
texto de exemplo
do que eu quero
fazer";
tmp=filename_name(string_replace_all(str,chr(13),"\"));//gambiarra
W=string_width(tmp);
H=string_height(str)-string_height(tmp)/2;
x=W;
y=H;
x e y será o ponto que você quer.

testei com o seguinte código
Código:

draw_text(0,0,str);
draw_circle_color(x,y,2,255,255,0);
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
Reputação : 100

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

Re: Posição do fim no draw_text_ext()

em Sex 03 Ago 2012, 20:04
O que você precisa é achar o tamanho da ultima linha.
Eu usaria uma combinação desses dois scripts: string_width_wrap e string_rpos.

O primeiro é muito útil porque com as funções padrões só é possível desenhar a string com quebra de linha mas não é possível retornar a string formatada para guardar em um variável por exemplo, mas esse script faz isso.
Para um interpretador de HTML pode ser muito útil.

O outro é só para achar a ultima posição de uma substring. No caso, vamos usar pra achar a ultima quebra de linha "#".

Código:
// string_width_last(str,w)

var str,p;
str = string_width_wrap(argument0,argument1,'#',0);
p = string_rpos('#',str);

return string_width(string_copy(str,p,string_length(str)));
Esse script vai retornar o tamanho da última linha da ai você pode fazer o resto.
Algo tipo:
Código:
str = "O fato de amafagadafar uma ninhada de amafagafinhos de penugem verdes deixou o Sr Amafagafo amafaganhadamente nervoso, amafagando triste que Dona Amafagafa deveria ter amafagadafado amafagafinhos machos azuis e amafagafinhas fêmeas, rosadas (ou vermelhas)."

tw = 200;
w = string_width_last(str,tw);
h = string_height_ext(str,-1,tw)-string_height('A');

draw_text(8,30,string_width_wrap(str,tw,'#',0));
draw_text(8+w,30+h,string_width_wrap(str,tw,'#',0));

Obs.: string_width_wrap é praticamente a mesma coisa mas é bom usar "draw_text(x,y,string_width_wrap(str,w,'#',0))" ao invez de "draw_text_ext(...)" para não ter riscos.
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