Skip to content

print plus pt

DuckAfire edited this page Sep 6, 2024 · 3 revisions

print+

  • Versão: 4.2.3
  • Descrição:

  Este livro conta com diversas funções relacionadas a estilização, formatação e organização de textos, assim fornecendo uma maior e mais prática gama de possibilidades para a customização de menus e UIs.


Tópicos


Funções

center

  • Descrição: calcula o centro aproximado do texto especificado.
  • Retorno: coordenadas para o posicionadomento do texto especificado em seu centro aproximado.

Estrutura

  • center(text, [x=0], [y=0], [fixed=false], [scale=1], [smallfont=false])
    • text (cadeia de caracteres): texto que será medido.
    • x (número): posição horizontal do texto.
    • y (número): posição vertical do texto.
    • fixed (booleano): especifica que a impressão em largura fixa deve ser usada.
    • scale (número): tamanho da fonte.
    • smallfont (booleano): especifica que a fonte pequena deve ser usada.

Exemplo

	-- [...]
	
	if GameOver then
		-- [...]
		
		local txt = {"Retry", "Menu"}
		
		local x, y = 0, 0
		for i = 1, #txt do
			x, y = plus.center(txt[i], 120, 65 + 10 * (i - 1))
			
			print(txt[i], x, y, 11)
		end
	end
	
	-- [...]




length

  • Descrição: calcula a largura e altura de um texto.
  • Retorno: os valores calculados.

Estrutura

  • length(text, [fixed=false], [scale=1], [smallfont=false])
    • text (cadeia de caracteres): texto que será medido.
    • fixed (booleano): especifica que a impressão em largura fixa deve ser usada.
    • scale (número): tamanho da fonte.
    • smallfont (booleano): especifica que a fonte pequena deve ser usada.

Exemplo

local function mainMenu()
	-- [...]
	
	-- options
	local opt = {"Play <", "Options <", "Stats <"}
	
	local w = 0
	for i = 1, #opt do
		w = plus(opt[i], false, 2)
		
		print(opt[i], 225 - w, 90 + 19 * (i - 1), 12, false, 2)
	end
end




pBorder

  • Descrição: desenha um texto com bordas.
  • Retorno: nenhum.

Estrutura

  • pBorder(text, [x=0], [y=0], [color=15], [bColor=0], [fixed=false], [scale=1], [distance=scale], [smallfont=false], [onCenter=false])
    • text (cadeia de caracteres): texto que será bordado e desenhado.
    • x (número): posição horizontal do texto.
    • y (número): posição vertical do texto.
    • color (número): cor do texto que será desenhado.
    • bcolor (número): cor da borda que será desenhada.
    • fixed (booleano): especifica que a impressão em largura fixa deve ser usada.
    • scale (número): tamanho da fonte.
    • distance (número): distância entre a borda e o texto.
    • smallfont (booleano): especifica que a fonte pequena deve ser usada.
    • onCenter (booleano): especifica se o eixo do texto deve ser seu centro aproximado.

Exemplo

	-- [...]
	
	-- item collected
	function item[i]:numEff(id)
		if self.y > self.minY then
			self.y = self.y - 1
		else
			self.timer = self.timer - 1
			if self.timer == 0 then
				table.remove(item, id)
				return
			end
		end
		
		plus.pBorder(self.bonus, self.x, self.y, 4, 0, false, 1, nil, true, true)
	end
	
	-- [...]




pCenter

  • Descrição: desenha um texto em seu centro aproximado.
  • Retorno: nenhum.

Estrutura

  • pCenter(text, [x=0], [y=0], [color = 15], [fixed=false], [scale=1], [smallfont=false])
    • text (cadeia de caracteres): texto que será medido e desenhado.
    • x (número): posição horizontal do texto.
    • y (número): posição vertical do texto.
    • color (número): cor do texto que será desenhado.
    • fixed (booleano): especifica que a impressão em largura fixa deve ser usada.
    • scale (número): tamanho da fonte.
    • smallfont (booleano): especifica que a fonte pequena deve ser usada.

Exemplo

local function score()
	plus.pCenter("SCORES:", 120, 30, 12, false, 2)

	local txt = ""
	for i = 0, 3 do
		txt = "player "..(i + 1)..": "..pmem(i)
		plus.pCenter(txt, 120, 55 + 10 * i, 12, false, 1, true)
	end
end




pList

  • Descrição: desenha vários textos na tela em formato de lista vertical.
  • Retorno: nenhum.

Estrutura

  • pList(text, [x=0], [y=0], [color=0], [space = 13], [fixed=false], [scale=1], [smallfont=false], [align=-1], [onCenter=false], [effect=nil])
    • text (matriz de cadeias de caracteres): textos que serão ordenados e desenhados.
    • x (número): posição horizontal do texto.
    • y (número): posição vertical do texto.
    • color (número): cor do texto que será desenhado.
    • space (número): espaço entre os textos da lista.
    • fixed (booleano): especifica que a impressão em largura fixa deve ser usada.
    • scale (número): tamanho da fonte.
    • smallfont (booleano): especifica que a fonte pequena deve ser usada.
    • align (número): define o alinhamento das linhas do texto, em: à esquerda (-1), centro (0) ou à direita (1).
    • onCenter (booleano): especifica se o eixo do parágrafo deve ser seu centro aproximado.
    • effect (tabela): tabelas contendo informações sobre configurações de formatação, referentes à borda ou à sombra.

Important

O primeiro valor de effect deve ser uma cadeia de caracteres igual à "border" ou "shadow", já o segundo deve ser uma equivalência aos parâmetros bColor (com um terceiro para distance) ou shadow das respectivas funções pBorder e pShadow.


Exemplo

local function printStats()
	local info = { "Coins", "Kills", "Points"}
	
	--[[
	local efBorder = {
		"border",
		0, -- color
		1, -- distance
	}
	]]
	
	local efShadow = {
		"shadow",
		{"0-2", "0-1"} -- left-below
	}
	
	local txt = ""
	for i = 0, 2 do
		txt = info[i + 1]..": "..pmem(i + 3)
		
		plus.pList(txt, 3, 40, 4, nil, nil, nil, true, false, efShadow)
	end
end




pShadow

  • Descrição: desenha um texto com sombras, que podem ser ajustadas para até quatro direções simultâneas.
  • Retorno: nenhum.

Estrutura

  • pShadow(text, shadow, [x=0], [y=0], [color=0], [fixed=false], [scale=1], [smallfont=false], [onCenter=false])
    • text (cadeia de caracteres): texto que será sombreado e desenhado.
    • shadow (matriz de cadeias de caracteres ou número): especificações sobre a sombra, onde seus valores são respectivamente: cor, direção e distância.
    • x (número): posição horizontal do texto.
    • y (número): posição vertical do texto.
    • color (número): cor do texto que será desenhado.
    • fixed (booleano): especifica que a impressão em largura fixa deve ser usada.
    • scale (número): tamanho da fonte.
    • smallfont (booleano): especifica que a fonte pequena deve ser usada.
    • onCenter (booleano): especifica se o eixo do texto deve ser seu centro aproximado.

Important

Em shadow, os valores devem ser obrigatoriamente separados por um hífen ('-'): "1-3", "12-0-4", ...; em modo matriz, apenas a cor e a direção são obrigatórios, a distância será definida como scale caso ela seja omitida.


Note

Como matriz, shadow podem conter até quatro combinações usáveis.


Tip

Caso shadow seja especificado como um número ao invés de uma matriz de cadeias de caracteres, a posição da sombra será definida como 1; os valores disponíveis para direção, em shadow, são: 0 (topo), 1 (inferior), 2 (esquerda) e 3 (direita).


Exemplo

local function gameUI()
	local text = {
		"HP: "..player.hp,
		"AMMO: "..player.ammo,
		"SPD: "..player.spd
	}
	
	for i = 0, 2 do
		-- shadow in below; equivalent to the "3-1-1"
		plus.pShadow(text[i + 1], 3, 2, 2 + 9 * i, 4, false, 1, true)
	end

	-- [...]
end



title

  • Descrição: desenha na tela, em formato de texto, usando sprites.
  • Retorno: nenhum.

Estrutura

  • title(sprites, [x=0], [y=0], [chromaKey=0], [space=1], [scale=1], [width=8], [height=8], [flip={0}], [rotate={0}], [alignX=false], [alignY=false], [vertical=false], [sprw=1], [sprh=1])
    • sprites (tabela): tabela contendo os índices dos sprites que serão usados para desenhar.
    • x (número): posição horizontal do eixo.
    • y (número): posição vertical do eixo.
    • chromaKey(número): cor transparente dos sprites.
    • space (número): espaço entre os sprites.
    • scale (número): tamanho dos sprites.
    • width (número): largura dos sprites.
    • heigth (número): altura dos sprites.
    • flip (número ou tabela): direção em que os sprites serão virados.
    • rotate (número ou tabela): valor de rotação dos sprites.
    • alignX (booleano): especifica se o eixo x deve ser movido para o centro aproximado do título.
    • alignY (booleano): especifica se o eixo y deve ser movido para o centro aproximado do título.
    • vertical (booleano): especifica que os sprites devem ser desenhados de cima para baixo, ao invés de ser da esquerda para a direita.
    • sprw (número): quatidade, horizontal, de fragmentos de sprites que compõem um caracter.
    • sprh (número): quatidade, vertical, de fragmentos de sprites que compõem um caracter.

Important

Caso flip (e/ou rotate) seja um número, seu valor será aplicado em todos os sprites especificados, mas caso seja uma tabela, cada índice da mesma será atribuído a um sprite de mesma posição, nesse caso, tornasse necessário que flip (e/ou rotate) tenha a mesma quantidade de índices que sprites, do contrário, um error será gerado.


Exemplo

	-- [...]
		
		if Main then
			plus.title({340, 329, 340, 332, 325}, 103, 30, nil, 2, 7)
			
			-- [...]
		
		elseif Skin then
			plus.title({339, 331, 329, 334, 339}, 103, 30, nil, 2, 7)
			
			-- [...]





  • en - pt -> coli2DA
  • en - pt -> print+
  • en - pt -> Magic_Palette
  • en - pt -> longBit

Clone this wiki locally