HU/getCursorPosition: Difference between revisions
(Created page with "{{Client function hu}} __NOTOC__ This function gets the current position of the mouse cursor. Note that for performance reasons, the world position returned is always 300 unit...") |
No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
{{Client function hu}} | {{Client function hu}} | ||
__NOTOC__ | __NOTOC__ | ||
Ez a function visszaadja az egér kurzor aktuális pozícióját. Vegye figyelembe, hogy teljesítményi okok miatt a world pozíció mindig 300 egységnyi távolságra van. If you want the exact world point (similar to [[onClientClick]]), use [[processLineOfSight]] between the camera position and the worldX/Y/Z result of this function. (Lásd az alábbi példát) | |||
==Szintaxis== | ==Szintaxis== | ||
Line 9: | Line 9: | ||
===Visszatérési érték=== | ===Visszatérési érték=== | ||
Visszaad 5 értéket: ''cursorX'', ''cursorY'', ''worldX'', ''worldY'', ''worldZ''. Az első két érték a kurzor 2D relatív képernyő koordinátái: ''cursorX'' 0-ról indul (a képernyő bal oldala) 1-ig (jobb oldal), ''cursorY'' 0-ról indul (teteje) 1-ig (alja). | |||
A következő 3 érték a 3D world map koordinátái, amelyekre a kurzor mutat. Ha a kurzor nem jelenik meg, akkor első értékként ''false'' értéket ad vissza. | |||
===Issues=== | ===Issues=== | ||
{{Issues| | {{Issues| | ||
Line 17: | Line 17: | ||
==Példa== | ==Példa== | ||
Ez a példa kiírja a chatba a kurzorok aktuális world kordinátáit és a képernyő relatív koordinátáit, mután beírtuk a ''cursorpos'' parancsot. | |||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
function cursorInfo() | function cursorInfo() | ||
Line 33: | Line 33: | ||
Ez a (nem tesztelt) példa a [[processLineOfSight]]-t használva kiszámolja a világ pontos helyét: | |||
''' | '''Figyelmeztetés, ez a script nagy CPU használatát eredményez.''' | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
addEventHandler( "onClientRender", root, | addEventHandler( "onClientRender", root, | ||
Line 58: | Line 58: | ||
[[en:getCursorPosition]] | [[en:getCursorPosition]] | ||
==Fordította== | |||
* '''''[https://wiki.multitheftauto.com/wiki/User:Surge Surge]''''' |
Latest revision as of 10:31, 13 October 2018
Ez a function visszaadja az egér kurzor aktuális pozícióját. Vegye figyelembe, hogy teljesítményi okok miatt a world pozíció mindig 300 egységnyi távolságra van. If you want the exact world point (similar to onClientClick), use processLineOfSight between the camera position and the worldX/Y/Z result of this function. (Lásd az alábbi példát)
Szintaxis
float, float, float, float, float getCursorPosition ( )
Visszatérési érték
Visszaad 5 értéket: cursorX, cursorY, worldX, worldY, worldZ. Az első két érték a kurzor 2D relatív képernyő koordinátái: cursorX 0-ról indul (a képernyő bal oldala) 1-ig (jobb oldal), cursorY 0-ról indul (teteje) 1-ig (alja). A következő 3 érték a 3D world map koordinátái, amelyekre a kurzor mutat. Ha a kurzor nem jelenik meg, akkor első értékként false értéket ad vissza.
Issues
Issue ID | Description |
---|---|
#5226 | getCursorPosition() 3D Positions Return Inaccurate, But Nearby Positions - Also Negative WorldZ |
Példa
Ez a példa kiírja a chatba a kurzorok aktuális world kordinátáit és a képernyő relatív koordinátáit, mután beírtuk a cursorpos parancsot.
function cursorInfo() if isCursorShowing() then -- if the cursor is showing local screenx, screeny, worldx, worldy, worldz = getCursorPosition() outputChatBox( string.format( "Cursor screen position (relative): X=%.4f Y=%.4f", screenx, screeny ) ) -- make the accuracy of floats 4 decimals outputChatBox( string.format( "Cursor world position: X=%.4f Y=%.4f Z=%.4f", worldx, worldy, worldz ) ) -- make the accuracy of floats 4 decimals accurate else outputChatBox( "Your cursor is not showing." ) end end addCommandHandler( "cursorpos", cursorInfo )
Ez a (nem tesztelt) példa a processLineOfSight-t használva kiszámolja a világ pontos helyét:
Figyelmeztetés, ez a script nagy CPU használatát eredményez.
addEventHandler( "onClientRender", root, function() if isCursorShowing() then local screenx, screeny, worldx, worldy, worldz = getCursorPosition() local px, py, pz = getCameraMatrix() local hit, x, y, z, elementHit = processLineOfSight ( px, py, pz, worldx, worldy, worldz ) if hit then dxDrawText( "Cursor at " .. x .. " " .. y .. " " .. z, 200, 200 ) if elementHit then dxDrawText( "Hit element " .. getElementType(elementHit), 200, 220 ) end end end end )
Lásd még
- HU/getCursorAlpha
- HU/getCursorPosition
- HU/isCursorShowing
- HU/setCursorAlpha
- HU/setCursorPosition
- HU/showCursor