- Dokumentacja
- Funkcje klienta
- dxDrawText
Funkcja
dxDrawText
Rysuje tekst na ekranie w jednej klatce. Wywołuj w onClientRender, żeby był widoczny cały czas.
Składnia
Krótka forma
bool dxDrawText(string text, float left, float top [, float right, float bottom, int color, float scale, font font, string alignX, string alignY, bool clip, bool wordBreak, bool postGUI, bool colorCoded])Z tabelą opcji
bool dxDrawText(string text, float left, float top, float right, float bottom, int color, table options)Argumenty
textstring- Tekst do narysowania.
left, topfloat- Lewy górny róg obszaru tekstu w pikselach.
right, bottomfloat, opcjonalny = left, top- Prawy dolny róg obszaru. Potrzebny do wyrównania do środka albo do prawej.
colorint, opcjonalny = tocolor(255, 255, 255)- Kolor z
tocolor(r, g, b, a). scalefloat, opcjonalny = 1- Powiększenie tekstu. Możesz podać dwie liczby: osobno w poziomie i w pionie.
fontstring|font, opcjonalny = default- Nazwa wbudowanej czcionki (
default,default-bold,pricedown...) albo czcionka zdxCreateFont. alignXstring, opcjonalny = leftleft,centeralboright.alignYstring, opcjonalny = toptop,centeralbobottom.clipbool, opcjonalny = false- Ucina tekst wystający poza obszar.
wordBreakbool, opcjonalny = false- Łamie długi tekst na kilka linii w obrębie obszaru.
postGUIbool, opcjonalny = false- Rysuje nad oknami GUI.
colorCodedbool, opcjonalny = false- Włącza kolory w tekście zapisane jak
#FF7A22. optionstable, opcjonalny- Zamiast listy argumentów: tabela z polami
font,scale,alignX,alignY,shadow,outline,fit,ellipsisi innymi.W MTA:SA inny typ: bool subPixelPositioning = false
Różnice względem MTA:SA
- Argumenty zaznaczone innym kolorem różnią się od MTA:SA.
- Tych argumentów z MTA:SA tu nie ma:
float fRotation = 0.0,float fRotationCenterX = 0.0,float fRotationCenterY = 0.0,float fLineSpacing = 0.0
W MTA:SA
dxDrawText(string text, float leftX, float topY, float rightX = leftX, float bottomY = topY, int color = 0xFFFFFFFF, float textSize, string/dx-font font = "default", string alignX = "left", string alignY = "top", bool clip = false, bool wordBreak = false, bool postGUI = false, bool colorCoded = false, bool subPixelPositioning = false, float fRotation = 0.0, float fRotationCenterX = 0.0, float fRotationCenterY = 0.0, float fLineSpacing = 0.0)Zwraca
true, gdy tekst został narysowany, albo false przy złym argumencie.
Przykład
Licznik prędkości w prawym dolnym rogu, z obrysem jak napisy w San Andreas.
local sw, sh = guiGetScreenSize()
addEventHandler("onClientRender", root, function()
local auto = getPedOccupiedVehicle(localPlayer)
if not auto then return end
local vx, vy, vz = getElementVelocity(auto) -- metry na sekundę
local kmh = math.floor((vx * vx + vy * vy + vz * vz) ^ 0.5 * 3.6)
dxDrawText(kmh .. " km/h", 0, 0, sw - 40, sh - 40, tocolor(255, 255, 255), {
font = "pricedown", scale = 2,
alignX = "right", alignY = "bottom",
outline = 2
})
end)
Uwagi
Tabela opcji. Zamiast długiej listy argumentów możesz podać tabelę opcji. W tabeli są też dodatki: własny cień (shadow), obrys (outline), dopasowanie skali do szerokości (fit) i ucinanie z wielokropkiem (ellipsis).
Obrót tekstu. Argumenty obrotu są przyjmowane, ale tekst nie jest jeszcze obracany. Skrypt dostanie jedno ostrzeżenie w konsoli.
Tylko na jedną klatkę. Tekst znika w następnej klatce. Żeby był widoczny, rysuj go w każdej klatce w onClientRender.