-
-
Notifications
You must be signed in to change notification settings - Fork 0
print plus pt
- 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.
- Descrição: calcula o centro aproximado do texto especificado.
- Retorno: coordenadas para o posicionadomento do texto especificado em seu centro aproximado.
- 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.
- text (
-- [...]
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
-- [...]- Descrição: calcula a largura e altura de um texto.
- Retorno: os valores calculados.
- 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.
- text (
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- Descrição: desenha um texto com bordas.
- Retorno: nenhum.
- 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.
- text (
-- [...]
-- 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
-- [...]- Descrição: desenha um texto em seu centro aproximado.
- Retorno: nenhum.
- 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.
- text (
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- Descrição: desenha vários textos na tela em formato de lista vertical.
- Retorno: nenhum.
- 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.
- text (
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.
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- Descrição: desenha um texto com sombras, que podem ser ajustadas para até quatro direções simultâneas.
- Retorno: nenhum.
- 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 caracteresounú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.
- text (
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).
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- Descrição: desenha na tela, em formato de texto, usando sprites.
- Retorno: nenhum.
- 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úmerooutabela): direção em que os sprites serão virados. - rotate (
númerooutabela): valor de rotação dos sprites. - alignX (
booleano): especifica se o eixoxdeve ser movido para o centro aproximado do título. - alignY (
booleano): especifica se o eixoydeve 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.
- sprites (
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.
-- [...]
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)
-- [...]See more about me here!