HU/dxDrawImage

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.

Egy dxDrawImage-val felrajzolt kép.

Rajzol egy képet a képernyőre, de csak egy másodpercre. Hogyha azt szeretnéd, hogy a kép a képernyőn állandóan látszódjon, akkor ezt a funkciót meg kell hivnod minden képkocka frissitéskor (onClientRender).
Jobb esetben a képek dimenziója a 2 négyzete, ez azért fontos, hogy elkerüljük a lehetséges elmosodását a képnek.
A kettő négyzetei: 2px, 4px, 8px, 16px, 32px, 64px, 128px, 256px, 512px, 1024px, stb...


[[{{{image}}}|link=|]] Tipp: Használd a(z) dxCreateTexture által létrehozott textúrákat, hogy felgyorsítsd a rajzolását a képnek.
[[{{{image}}}|link=|]] Tipp: Ahhoz, hogy megelőzd a kép sarkainak hibáját amikor felrajzolsz egy képet, tedd a(z) textureEdge-et "clamp"-ra, amikor meghívod a dxCreateTexture funkciót.

Szintaxis

bool dxDrawImage ( float posX, float posY, float width, float height, mixed image,
                 [ float rotation = 0, float rotationCenterOffsetX = 0, float rotationCenterOffsetY = 0,
                   int color = tocolor(255,255,255,255), bool postGUI = false ] )

Kötelező paraméterek

  • posX: A kép abszolút pozíciója a képernyő bal szélső oldalától számolva.
  • posY: A kép abszolút pozíciója a képernyő tetejétől számolva.
  • width: Az abszolút képszélesség
  • height: Az magasság képszélesség
  • image: Egy material element vagy egy filepath(elérési útvonal) a képhez. (.dds képeket is felrajzolhatsz).

Tetszőleges paraméterek

  • rotation: A kép rotációja fokokban kifejezve.
  • rotationCenterOffsetX: Az abszolút X offset a kép közepétől számolva.
  • rotationCenterOffsetY: Az abszolút Y offset a kép közepétől számolva.
  • color: Átszinezi a képet egy tocolor által visszaadott értékre, vagy megadhatsz egy hexidecimális számot is: 0xAARRGGBB (RR = piros, GG = zöld, BB = kék, AA = átlátszóság), minden érték 0-255 között kell,hogy legyen.
  • postGUI: True ha a GUIk felé akarod rajzolni, false ha a GUI-k mögé. A kép mindig a főmenü mögött lesz.

Visszaadott értékek

True-t ad vissza ha sikerült, false-t ha nem.

Példa

Példa egy lengő ingáról a képernyő tetején, a dxDrawImage használatával.

local screenWidth,screenHeight = guiGetScreenSize()  -- Get screen resolution.


function renderDisplay ( )
	local seconds = getTickCount() / 1000
	local angle = math.sin(seconds) * 80
	-- This will draw the graphic file 'arrow.png' at the top middle of the screen
	-- using the size of 100 pixels wide, and 240 pixels high.
	-- The center of rotation is at the top of the image.
	dxDrawImage ( screenWidth/2 - 50, 0, 100, 240, 'arrow.png', angle, 0, -120 )
end


function HandleTheRendering ( )
	addEventHandler("onClientRender", root, renderDisplay)  -- Keep everything visible with onClientRender.
end
addEventHandler("onClientResourceStart",resourceRoot, HandleTheRendering)

Lásd még