HU/dxDrawImage

From Multi Theft Auto: Wiki
Revision as of 17:28, 1 September 2020 by Surge (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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