Posição do fim no draw_text_ext()

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

Posição do fim no draw_text_ext()

Mensagem por luiz_eldorado 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.

luiz_eldorado

Ranking : Nota C
Número de Mensagens : 928
Idade : 17
Data de inscrição : 30/07/2011
Notas recebidas : C
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://luizpontes.tk/

Voltar ao Topo Ir em baixo

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

Mensagem por Jiraya 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);

Jiraya

Ranking : Nota A
Número de Mensagens : 1134
Data de inscrição : 20/03/2010
Notas recebidas : A+A
Reputação : 108
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

https://www.facebook.com/seito.washiro.7

Voltar ao Topo Ir em baixo

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

Mensagem por Kabeção 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.

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

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

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


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