PT-BR/dxGetTextSize: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
m (little correction)
No edit summary
Line 27: Line 27:


==Exemplo==
==Exemplo==
<section name="Exemplo 1" class="client" show="false">
<section name="Exemplo 1" class="client" show="true">
Esse exemplo mostra um retângulo que acompanha o texto digitado após o comando ser acionado
Esse exemplo mostra um retângulo que acompanha o texto digitado após o comando ser acionado
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">

Revision as of 12:21, 6 May 2021

Template:BR/Funcao cliente Esta função ira retornar a largura e altura teóricas (em pixels) de um determinado trecho de texto, se ele fosse feito usando dxDrawText.

NOTA: Esta função já leva em consideração a resolução da tela do cliente.

Syntax

float, float dxGetTextSize ( string text [, float width = 0, float scaleX = 1.0, float scaleY = 1.0, mixed font = "default", bool wordBreak = false, bool colorCoded = false] )

Sintaxe POO(OOP) Não entendeu o que significa isso?

Nota: Esta sintaxe requer que você ignore o argumento da fonte acima
Método: font:getSize(...)

Argumentos Requeridos

  • texto: Uma string que representa o texto para o qual você deseja recuperar com largura.

Argumentos Opcionais

NOTA: Ao usar argumentos opcionais, pode ser necessário fornecer todos os argumentos anteriores ao que você deseja usar. Para obter mais informações sobre argumentos opcionais, consulte Argumentos Opcionais.

  • width: A largura do texto. Usar com wordBreak = true.
  • scaleX: O tamanho do texto. O tamanho também pode ser inserida como um Vector2.
  • scaleY: O tamanho do texto.
  • fonte: Ou uma Fonte Dx elemento ou o nome de uma fonte dx integrada:
    • "default": Tahoma
    • "default-bold": Tahoma Bold
    • "clear": Verdana
    • "arial": Arial
    • "sans": Microsoft Sans Serif
    • "pricedown": Pricedown (GTA's theme text)
    • "bankgothic": Bank Gothic Medium
    • "diploma": Diploma Regular
    • "beckett": Beckett Regular
    • "unifont": Unifont
  • wordBreak: Se definido para true, o texto será quebrado em uma nova linha sempre que atingir o lado direito da caixa delimitadora. Se false, o texto sempre estará completamente em uma linha.
  • colorCoded: Devemos excluir códigos de cores da largura? False incluirá o hexadecimal no comprimento.

Retorna

Retorna dois floats que representam a largura e a altura do texto em pixels.

Exemplo

Click to collapse [-]
Exemplo 1

Esse exemplo mostra um retângulo que acompanha o texto digitado após o comando ser acionado

local screenWidth, screenHeight = guiGetScreenSize() -- Pegamos a resolução do cliente
local PosX, PosY = (screenWidth/1360), (screenHeight/768) -- Resolução do desenvolvedor do script
local boxIsShowing = false -- Definimos que a variavel é false

function theMessageBox()
    if boxIsShowing and Texto then
        local textoWidth, textoHeight = dxGetTextSize(Texto, PosX * (160 - 15), 1, 1, "default-bold", true, false) -- Pegamos os dois floats que dxGetTextSize retorna

        --[[ Uma nota importante é que o PosX * (160 - 15) acima vai representar:

            160 = 4° Parametro do dxDrawText, representa largura do texto ;
            15 = 2° Parametro do dxDrawText, representa " Posição X " do texto.

            Para retornar a altura sempre use o wordbreak como true

        ]]--

        dxDrawRectangle(PosX * 5, PosY * 350, PosX * 170, textoHeight + 15, tocolor(13, 13, 13, 180), false) -- Colocamos o retangulo para aumentar conforme a altura do texto
        dxDrawText(Texto, PosX * 15, PosY * 358, PosX * 160, PosY * 380, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, true, false, false, false)
    end
end

addCommandHandler("showbox", function(nomeDoComando, ...)
    if not boxIsShowing then
        local Mensagem = table.concat({...}, " ")
        if Mensagem ~= "" then
            Texto = Mensagem
            boxIsShowing = true
            addEventHandler("onClientRender", root, theMessageBox)
            setTimer(function()
                boxIsShowing = false
                Texto = nil
                removeEventHandler("onClientRender", root, theMessageBox)
            end, 10 * 1000, 1)
        else
            outputChatBox("Você precisa digitar uma mensagem após o comando.", 255, 255, 255, true)
        end
    end
end)
PT-BR-dxGetTextSize.png

Requer

Servidor mínimo suportado N/A
Cliente mínimo suportado 1.5.7-9.20447

Nota: O uso desta função / evento requer que o recurso tenha a versão mínima acima declarada na seção meta.xml <min_mta_version>. e.g. <min_mta_version client="1.5.7-9.20447" />

Veja Mais