HU/dxDrawLine

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Ez a function rajzol egy 2D-s vonalat a képernyőre - egy képkocka erejéig van kirajzolva. Ezt az onClientRender segítségével együtt kell használni annak érdekében, hogy folyamatosan jelenjen meg.

Szintaxis

bool dxDrawLine ( int startX, int startY, int endX, int endY, int color [, float width = 1.0, bool postGUI = false ] )

Kötelező paraméterek

  • startX: A vonal kezdetének abszolút X pozícióját képviselő egész szám, melyek képpontokból állanak a képernyőn.
  • startY: A vonal kezdetének abszolút Y pozícióját képviselő egész szám, melyek képpontokból állanak a képernyőn.
  • endX: A vonal végének abszolút X pozícióját képviselő egész szám, melyek képpontokból állanak a képernyőn.
  • endY: A vonal végének abszolút Y pozícióját képviselő egész szám, melyek képpontokból állanak a képernyőn.
  • color: A hexadecimális szín, melyet a tocolor-al vagy az 0xAARRGGBB fügvénnyel tudunk megadni (AA = átlászóság, RR = piros, GG = zöld, BB = kék).

Tetszőleges paraméterek

Megjegyzés: Amikor tetszőleges paramétereket használ, előfordulhat, hogy az összes paramétert meg kell adnia, mielőtt egyet is használna. További információkért látogassa meg a tetszőleges paraméterek oldalt.

  • width: A vonal szélessége/vastagsága
  • postGUI: Egy igaz/hamis érték, mely azt képviseli, hogy a vonal bármelyik ingame GUI mögött, vagy fölött legyen-e (CEGUI által rajzolt).

Visszatérési érték

Visszatérési értéke true, ha a művelet sikeres, egyébként false.

Példa

Ez a példa rajzol egy 'X'-et a képernyőre.

local screenWidth, screenHeight = guiGetScreenSize() 
local lineColor = tocolor(255, 0, 0)
function drawLinesAcrossScreen()
	dxDrawLine(0, 0, screenWidth, screenHeight, lineColor)
	dxDrawLine(screenWidth, 0, 0, screenHeight, lineColor)
end
addEventHandler("onClientRender", root, drawLinesAcrossScreen)

Ez a példa rajzol néhány kört

function drawCircle( x,y, radius, color )
    local numPoints = math.floor( math.pow( radius, 0.4 ) * 5 )     -- Calculate number of points to make it look good
    local step = math.pi * 2 / numPoints
    local sx,sy
    for p=0,numPoints do
        local ex = math.cos ( p * step ) * radius
        local ey = math.sin ( p * step ) * radius
        if sx then
            dxDrawLine( x+sx, y+sy, x+ex, y+ey, color )
        end
        sx,sy = ex,ey
    end
end

addEventHandler( "onClientRender", root,
    function()
        drawCircle( 350, 350, 10, tocolor(255,0,255) );
        drawCircle( 350, 350, 50, tocolor(255,0,255) );
    end
)

Lásd még

Fordította