- Dokumentacja
- Funkcje klienta
- dxDrawLine3D
Funkcja
dxDrawLine3D
Rysuje odcinek między dwoma punktami świata: rzutuje je na ekran i łączy linią. Rysuje tylko, gdy oba końce są na ekranie, i nie jest zasłaniany przez budynki.
Składnia
bool dxDrawLine3D(float startX, startY, startZ, float endX, endY, endZ [, int color = tocolor(255, 255, 255), float width = 1, bool postGUI = false, bool smooth = false])Argumenty
startX, startY, startZfloat- Początek w świecie.
endX, endY, endZfloat- Koniec w świecie.
colorint, opcjonalny = tocolor(255, 255, 255)- Kolor.
widthfloat, opcjonalny = 1- Grubość w pikselach.
postGUIbool, opcjonalny = false- Nad GUI.W MTA:SA inna wartość domyślna: bool/string stage = "postfx"
smoothbool, opcjonalny = falsetrue= linia wygładzona: gładkie krawędzie bez schodków i zaokrąglone końce, więc kolejne odcinki (np. ścieżka po ziemi) łączą się bez przerw.Nie ma go w MTA:SA
Różnice względem MTA:SA
- Argumenty zaznaczone innym kolorem różnią się od MTA:SA.
W MTA:SA
dxDrawLine3D(float startX, float startY, float startZ, float endX, float endY, float endZ, int color = 0xFFFFFFFF, float width = 1.0, bool/string stage = "postfx")Zwraca
true, gdy narysowano.
Przykład
addEventHandler("onClientRender", root, function()
local x, y, z = getElementPosition(localPlayer)
dxDrawLine3D(x, y, z, x, y, z + 5, tocolor(255, 0, 0), 3)
end)
Uwagi
Odcinek z jednym końcem za kamerą albo poza ekranem jest przycinany (do płaszczyzny 0,6 m przed kamerą i do krawędzi ekranu), więc rysuje się widoczna część, a nie nic.