Anuncios Google

Snippet LuaDev - Ajusta Texto

Hola! hoy he necesitado crear una función para poder ajustar un texto a cierta cantidad de píxeles, es decir, dar enter donde sea necesario sin cortar palabras, y como pienso que a más de uno le servirá, aquí la dejo:

function adjust(str,size,pix)
	local newstr = ""
	local space = screen.textwidth(" ",size)
	local lasttxtw = 0
	local lines = 1
 
	for tmpstr in str:gmatch("([^%s]+)") do
		tmpix = screen.textwidth(tmpstr,size)
		if lasttxtw+tmpix<pix-9 then
			newstr = newstr..tmpstr.." "
			lasttxtw = lasttxtw + tmpix + space
		else
			newstr = newstr.."\n"..tmpstr.." "
			lasttxtw = tmpix + space
			lines = lines + 1
		end
	end
 
	return newstr,lines
end

Uso:

texto, lineas = adjust("aquí hay un texto bastante largo que no va a caber en pantalla, y como necesitamos que lo lean completo, pues... lo tratamos con esta función que nos va a facilitar la vida, devolviendonos el texto con los enter's necesarios y además, la cantidad de líneas que va a ocupar en pantalla :D",1.1,460)

Capturas:

Sin el snippet:

Sin el snippet

Con el snippet:

Con el snippet

Edito: He recortado la función, hace lo mismo, y devuelve lo mismo :D

Saludos! y espero que a más de uno le sirva :D



PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]

07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD

Recuerda: Sé el intérprete -_-


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de bertoDLKai13

Uau

Gracias, esto me va a venir muy bien para hacer los diálogos...

Una pregunta, puedes configurar desde donde y hasta donde pones el texto? (ej: de el píxel 30 al 200, de anchura hablando) 


haces un screen.print el la

haces un screen.print el la coordenada X->30 y el string usas el que te haya devuelto la funcion poniendo como parámetro de pixeles 170.

Imagen de bertoDLKai13

Gracias.

A ver si me aclaro cuando vaya a programar...

Un saludo.

Imagen de Psprekiem

A mi no me hagas mucho caso ,

A mi no me hagas mucho caso , yo solo te digo mi opinion xD

Creo que si xD

Imagen de Psprekiem

Ok ,muchas Gracias , esque

Ok ,muchas Gracias , esque EStoi pensando en hacer un HB , pero claro no tengo ni la mas Remota Idea i Esto alomejor me ayuda ^^ XD

Muchas Gracias a los 2 ^^


Isaac Newton: "Lo que sabemos es una gota de agua; lo que ignoramos es el océano".

Imagen de Psprekiem

Hola , me he leido todos los

Hola , me he leido todos los tutos de Chimecho , hasta el Button tester , ese aun no , i la duda qe tengo .. Esto donde se coloca ?

Al principio de el Script.lua ?

Porque lo he puesto al principio i no me funciona ... 

Ayuda porfavor 


Isaac Newton: "Lo que sabemos es una gota de agua; lo que ignoramos es el océano".

¿Sabes llamar a una función?

¿Sabes llamar a una función?

Imagen de Psprekiem

Te importa si me lo explicas

Te importa si me lo explicas por Mp... Lo siento por ser tan novato xDD

 

Te lo explico aquí así los

Te lo explico aquí así los otros también lo verán. Con lo de Chime solo no hace nada, eso para "usarlo" debes llamar a la función con los parámetros de la función, por ejemplo

tu quieres que te "corte" eso : "hooooooooooooooooola a toooooooooooooddddddoooooooooooooooooooooooooooosssssssssssssssssssssssssssssssssssssssssss!!!!!!!!!!!!!" cuando llegue a 200 pixeles y con un tamaño de 0.7, entonces pones:

adjust("hooooooooooooooooola a toooooooooooooddddddoooooooooooooooooooooooooooosssssssssssssssssssssssssssssssssssssssssss!!!!!!!!!!!!!",0.8,200)

Si no lo has entendido te lo explicaré mejor

Imagen de Psprekiem

mmm creo que lo he entendido

mmm creo que lo he entendido , pero entonces , todo lo que hay abajo de eso ? 

Para que sirve  ? lo he de poner tambien ?

EDITO: Creo que no lo entiendo ...

function adjust("hooooooooooooooooola a toooooooooooooddddddoooooooooooooooooooooooooooosssssssssssssssssssssssssssssssssssssssssss!!!!!!!!!!!!!",0.8,200)
	local newstr = ""
	local space = screen.textwidth(" ",size)
	local lasttxtw = 0
	local lines = 1
 
	for tmpstr in str:gmatch("([^%s]+)") do
		tmpix = screen.textwidth(tmpstr,size)
		if lasttxtw+tmpix<pix-9 then
			newstr = newstr..tmpstr.." "
			lasttxtw = lasttxtw + tmpix + space
		else
			newstr = newstr.."\n"..tmpstr.." "
			lasttxtw = tmpix + space
			lines = lines + 1
		end
	end
 
	return newstr,lines

Te refieres a esto ?¿


Isaac Newton: "Lo que sabemos es una gota de agua; lo que ignoramos es el océano".

No, la función ya la tienes

No, la función ya la tienes creada, es como si fuese un screen.print, solo tienes que poner el nombre de la función y los parámetros.

Imagen de Psprekiem

Bufff .... Lo siento , esque

Bufff .... Lo siento , esque no me entero ... Que te refieres asi ?

function adjust(str,size,pix)
	local newstr = ""
	local space = screen.textwidth(" ",size)
	local lasttxtw = 0
	local lines = 1
 
	for tmpstr in str:gmatch("([^%s]+)") do
		tmpix = screen.textwidth(tmpstr,size)
		if lasttxtw+tmpix<pix-9 then
			newstr = newstr..tmpstr.." "
			lasttxtw = lasttxtw + tmpix + space
		else
			newstr = newstr.."\n"..tmpstr.." "
			lasttxtw = tmpix + space
			lines = lines + 1
		end
	end
 
	return newstr,lines
end
 
adjust("hooooooooooooooooola a toooooooooooooddddddoooooooooooooooooooooooooooosssssssssssssssssssssssssssssssssssssssssss!!!!!!!!!!!!!",0.8,200)

Bufff ... que dificil.... 

Lo siento ...

Gracias 


Isaac Newton: "Lo que sabemos es una gota de agua; lo que ignoramos es el océano".

Si, no es nada dificil...

Si, no es nada dificil...

Imagen de Psprekiem

Lo he hecho bien ?¿  

Lo he hecho bien ?¿

 

Imagen de Chimecho

Lee...

Eso xD, lee donde pone "Uso:" ahi dice como usarla, luego de eso, texto lo puedes imprimir con screen.print y ya saldrá con los espacios necesarios...

Pero, es mucho más fácil hacer lo que dice DeViaNTe en este comment

Saludos!



PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]

07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD

Recuerda: Sé el intérprete -_-

Imagen de Psprekiem

Ya , lo he leido pero no me

Ya , lo he leido pero no me entero mucho ... xD

Pero lo que dice DEviante , hace lo mismo  , que lo que has puesto tu ?

 


Isaac Newton: "Lo que sabemos es una gota de agua; lo que ignoramos es el océano".

Imagen de Chimecho

Sep

Exactamente lo mismo, verás, siguiendo el ejemplo de xerpi:

screen.print(10,10,"hooooooooooooooooola a toooooodooooos los que estén leyendo esto, bla bla bla bla bla bla bla bla y más blaahh.... xD", 0.8, color.new(255,255,255), color.new(0,0,0,0), "full", 200);

Editado: le he puesto espacios para no descuadrar la web...



PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]

07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD

Recuerda: Sé el intérprete -_-

Imagen de NEKERAFA

Uff, estaba haciendo yo uno

Uff, estaba haciendo yo uno pero me daba errores y no sabia como hacer, iva a tirar el ordenador y to. Pues esto va pal NekeOS xddd

Espera, ahora que me fijo, esta para LuaDEV, no? pues haber si lo paso para LuaHM


NekeOS, el nuevo shell para PSP

PS4 500GB OFW, PS3 320GB OFW, PS3 500GB OFW, PSP 6.39 PRO-C Fix4.

Sony Xperia Z1 Compact con Android 5.1.1

Portatil Lenovo z50-70 Intel® Core™ i7-4510U y NVIDIA GeForce 840M con Elementary OS 0.3.2 Freya (64 bits) y Windows 10 (64 bits).

WoW chime muchisimas gracias

WoW chime muchisimas gracias me va a servir muchisimo !

Imagen de ANI-KIBA

:D

Y si hay otro mas largo que eso, se puede hacer una animacion para que las letras se muevan? (Como las de un noticiero, que van hacia la izquierda xD)

Y otra que sea como la de Star Wars xD

Saludos!


Youtube Channel - MrHenyckma (Grykon!) ¡Nuevos vídeos! Clíckea en la IMG :D!
Youtube propio, si quieres escuchar mi música :) 

LuaDEV ya incorpora

LuaDEV ya incorpora scrolling.

Imagen de ANI-KIBA

:D

Esque no savia si tenia o no xD

Imagen de iRVing_Prog

si se puede

tu imaginacion manda, los dedos y código representan :D

con bucles for puedes hacer cualquiera de esas dos animaciones que comentas.


 

Imagen de Jaiminhio_Milhan

Chime....

PWNED!!! te fregó el sensei chimee jajajaja

Imagen de Chimecho

see...

Aunque no tengo culpa, ni lo mencionó, ni lo documentó =/ xD

Imagen de barney77

¿Donde Andabas?

¿Donde Andabas?....

Un saludotototote hermano..

Imagen de DeViaNTe

grandisimo xD

Me encanta el snippet, grandísimo! Corto debido a la magia de los patterns, veo que le empiezas a coger el gusto

Ahi va otro snippet que hace lo mismo, para tener diversas opciones y tal jej...

x = screen.print(10,10,"este es un texto realmente largo que cupa mas tamaño que el de la pantalla y no se vera entero",1,color.new(255,255,255),color.new(0,0,0,0), "full", 300);

(si no estuviera en la docu, k no lo he mirao, falta ponerlo xD)

edito: Cierto, no está en la docu :P, solo sale el align, pero me olvidé poner que cuando pones width mete automaticamente los \n, a menos que sea scroller...


Actualmente desarrollando nuestra web y UXCode : http://www.gcrew.es

Esta buena esta función!

Esta buena esta función! Seguramente me servirá :)

Imagen de -chus-

Gracias

Excelente chime, esto sin duda servira a muchos en los juegos de aventuras XD gracias es espero y alguin dia lo utilice

Imagen de iRVing_Prog

Excelente

Gracias por el aporte, espero poder utilizarlo en algun HB :D

Salu2 Chimecho

estupendo!

estupendo, ya no sera necesario poner tantas lineas para imprimir texto!

gracias chime :D

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.