Caixa de texto do tamanho do texto

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

Caixa de texto do tamanho do texto

Mensagem por Zero. em Sex 04 Maio 2012, 20:23

Como fazer uma caixa de texto ser do tamanho do texto, tipo :
=========
/Mamãe fez/
/mingau /
=========

tipo isso o texto por exemplo tem o tamanho de 64x32 e a caixa que fica atras do texto tem que ter o msm tamanho e um pouquinho a mais, pra caber o texto.
Alguem sabe ? o_O


Última edição por FlyAway em Sex 04 Maio 2012, 21:24, editado 1 vez(es)

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Caixa de texto do tamanho do texto

Mensagem por Super Maker em Sex 04 Maio 2012, 20:34

Usa o tamanho da caixa de texto no valor do string_width(string) e/ou faz uma var que limita o string_length(str)

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Caixa de texto do tamanho do texto

Mensagem por Tedi Ripper em Sex 04 Maio 2012, 20:37

eu fiz isso esse final de semana hehehe, eu usei esse codigo aqui:
Código:
draw_set_alpha(.5)
draw_set_color(c_black)
draw_set_font(Consolas_12)
draw_set_halign(fa_center)
argument0=string_width(texto)
draw_rectangle(x-argument0/2+24,y-64, x+argument0/2+24,y-64+string_height(texto),false)
draw_set_alpha(1)
draw_set_color(c_white)
draw_text(x+24,y-66,texto)

Variaveis:
texto - o texto que vai aparecer

Fonte:
Consolas_12 - mude isso pelo nome da fonte que vc quiser, isso n afeta

o que faz:


Lembrete: Eu fiz o codigo em relaçao ao uso no meu jogo (no caso, aquela placa atras do player), talvez vc tenha que alterar os valores, mas n vai estar dificil, fica susse...

flw

Tedi Ripper

Ranking : Nota C
Número de Mensagens : 765
Idade : 19
Data de inscrição : 21/11/2010
Notas recebidas : C
Reputação : 24
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Caixa de texto do tamanho do texto

Mensagem por Zero. em Sex 04 Maio 2012, 20:47

Naum deu certo Super Maker, eu tentei aqui olha como eu fiz :

draw_rectangle_color(x+11,y-37,string_width(global.text1)-5,string_height(global.text1)-5,c_white,c_white,c_white,c_white,0)

e vc naum explicou a utilidade das funções que vc citou.

Tedi ta mto confuso isso. e naum esta explicado.

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Caixa de texto do tamanho do texto

Mensagem por Tedi Ripper em Sex 04 Maio 2012, 21:02

draw_set_alpha(.5) - Faz o retangulo ser semi transparente

draw_set_color(c_black) - Cor do retangulo

draw_set_font(Consolas_12) - Fonte do texto

draw_set_halign(fa_center) - centraliza o texto

argument0=string_width(texto) - Salva a largura do texto

draw_rectangle(x-argument0/2+24,y-64, x+argument0/2+24,y-64+string_height(texto),false) - Desenha o retangulo

draw_set_alpha(1) - deixa o texto claro (nao transparente)

draw_set_color(c_white) - cor do texto

draw_text(x+24,y-66,texto) - desenha o texto

---//--//--//---

quando desenha o retangulo:
draw_rectangle(x-argument0/2+24,y-64, x+argument0/2+24,y-64+string_height(texto),false)

Draw_rectangle(x1,y1,x2,y2,outline)

----
x1- x-argument0/2 = posiçao x menos largura do texto dividido por 2
----
y1 - y-64
----
x2 - é a mesma coisa que o x1, só que pro outro lado
----
outline - false (pra preencher tudo)

---//--//--//---

agora ta explicado, só que assim, eu fiz esse codigo pro meu projeto, entao talvez nao vai ficar perfeito, mas qualquer coisa, é só mudar um pouco a posiçao X do quadrado e do texto ;D

Tedi Ripper

Ranking : Nota C
Número de Mensagens : 765
Idade : 19
Data de inscrição : 21/11/2010
Notas recebidas : C
Reputação : 24
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Caixa de texto do tamanho do texto

Mensagem por Super Maker em Sex 04 Maio 2012, 21:16

Simplesmente cola isso aqui em um evento draw de um novo projeto que você vai entender:
Código:
texto = "Testando limite do texto";/*o valor dessa var é o texto que exibe na tela, ela pode mudar e por isso, podes
fazer o texto de todo seu jogo só com ela*/
draw_set_color(c_white);//isso vai deixar seu texto de uma cor diferente da caixa
caixa = draw_rectangle(x,y,x+string_width(texto),y+string_height(texto),0)/*aqui o x2 tem o valor do x1, só que acrecentando a largura do texto e o y2 tem o valor do y1 e acrecenta a altura do texto.*/
draw_set_color(c_blue)
draw_text(caixa.x,caixa.y,texto);/*caixa é a var que foi criada logo acima pra pintar a caixa onde vai conter os textos, eu só fiz usar como referência pra pegar os valores do x1 e y1 da caixa*/
Entendeu?


Última edição por Super Maker em Sex 04 Maio 2012, 21:23, editado 1 vez(es)

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Caixa de texto do tamanho do texto

Mensagem por Tedi Ripper em Sex 04 Maio 2012, 21:21

Super Maker escreveu:Simplesmente cola isso aqui em um evento draw de um novo projeto que você vai entender:
Código:
texto = "Testando limite do texto";
draw_set_color(c_white)
caixa = draw_rectangle(x,y,x+string_width(texto),y+string_height(texto),0)
draw_set_color(c_blue)
draw_text(caixa.x,caixa.y,texto);
yes Bem melhor, eu tava com o script pronto, tava com preguiça de fazer do zero hehehe...

Tedi Ripper

Ranking : Nota C
Número de Mensagens : 765
Idade : 19
Data de inscrição : 21/11/2010
Notas recebidas : C
Reputação : 24
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Caixa de texto do tamanho do texto

Mensagem por Zero. em Sex 04 Maio 2012, 21:24

Vlw Tedi, Agora ta blz Happy
consertei algumas coisas e ta td certo vlw msm !

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Caixa de texto do tamanho do texto

Mensagem por Super Maker em Sex 04 Maio 2012, 21:26

Desculpa não ter te explicado direito antes, eu tava meio ocupado, mas já coloquei os comentários e tudo mais pra você aí acima.
Até mais!

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Caixa de texto do tamanho do texto

Mensagem por Klior em Sex 04 Maio 2012, 23:34

Super Maker escreveu:(...) caixa = draw_rectangle(x,y,x+string_width(texto),y+string_height(texto),0)/*aqui o x2 tem o valor do x1, só que acrecentando a largura do texto e o y2 tem o valor do y1 e acrecenta a altura do texto.*/
draw_text(caixa.x,caixa.y,texto);/*caixa é a var que foi criada logo acima pra pintar a caixa onde vai conter os textos, eu só fiz usar como referência pra pegar os valores do x1 e y1 da caixa*/
[/code]

Essa variável caixa não é um objeto então você não pode pegar os valores de x e y dela, não tem como pegar a posição que está desenhado um retângulo dessa forma, não sei porque isso não causa nenhum erro.
Resumindo,
caixa = draw_rectangle(x, y, x + string_width(texto), y + string_height(texto), 0);
draw_text(caixa.x, caixa.y, texto);
É a mesma coisa que:
draw_rectangle(x, y, x + string_width(texto), y + string_height(texto), 0);
draw_text(x, y, texto);

Klior

Número de Mensagens : 426
Idade : 25
Data de inscrição : 07/03/2010
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Caixa de texto do tamanho do texto

Mensagem por Super Maker em Sab 05 Maio 2012, 00:01

Klior escreveu:
Essa variável caixa não é um objeto então você não pode pegar os valores de x e y dela, não tem como pegar a posição que está
Exatamente amigo isso não é um objeto e sim uma referência que eu criei, como eu comentei mais acima.
Mas aí você pensa bem, e se o programador quizer fazer com que a borda da caixa não encoste no texto?


Última edição por Super Maker em Sab 05 Maio 2012, 00:50, editado 1 vez(es)

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Caixa de texto do tamanho do texto

Mensagem por Klior em Sab 05 Maio 2012, 00:25

Você não entendeu.
draw_rectangle ou roundrect não retorna nada, nem id como objeto, ele não é um objeto então você não pode usa-lo como ponto de referencia.
não importa em que posição esteja a "caixa"
quando você fizer isso para desenhar o texto:
draw_text(caixa.x,caixa.y,texto);
vai ser sempre assim:
draw_text(caixa.x,caixa.y,texto);
ou seja essa variável "caixa" não está fazendo diferença, então o texto vai ser desenhado na posição X e Y do objeto e não na posição X e Y do retângulo.

faça esse teste e verá que o texto ficará fora do retângulo.

Código:
texto = "Testando caixa de texto";
draw_set_color(c_black)
caixa = draw_roundrect(x-3+200,y-3,x+string_width(texto)+3+200,y+string_height(texto)+3,0)
draw_set_color(c_white)
caixa = draw_roundrect(x-1+200,y-1,x+string_width(texto)+1+200,y+string_height(texto)+1,0)
draw_set_color(c_blue)
draw_text(caixa.x,caixa.y,texto);

Klior

Número de Mensagens : 426
Idade : 25
Data de inscrição : 07/03/2010
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Caixa de texto do tamanho do texto

Mensagem por Super Maker em Sab 05 Maio 2012, 00:54

rsrsrsr e não é que eu errei mesmo? XD
Então FlyAway a minha dica seria:
Código:
texto = "Testando caixa de texto";
draw_set_color(c_white)
draw_rectangle(x,y,x+string_width(texto)+1,y+string_height(texto)+1,0)
draw_set_color(c_blue)
draw_text(x,y,texto);
Desculpa mais uma vez eu estar viajando na margarina.
E valeu Klior!

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Caixa de texto do tamanho do texto

Mensagem por Conteúdo patrocinado Hoje à(s) 00:30


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