-
Sziasztok. Régóta kísérletezek ilyennel, de sajnos sehogy se tudtam megoldani.
A probléma az lenne, hogy van egy rectangle amit a world-ben rajzoltam ki. (128*128 méret)
Hogyan tudnám lekérnni az egér pozícióját a valóságban úgy, hogy akkor térjen vissza egy true értékkel amikor abban az adott boxban benne van a kurzor? Próbálkoztam már a getCursorPosition utolsó 3 értékével is de sajnos azzal sem jártam sikerrel.
Bármelynemű segítséget köszönök!
-
local sx,sy = guiGetScreenSize()
local cx,cy = getCursorPosition ()
local cx,cy = cx*sx,cy*sy
if cx > --[kezdeti X kordi]-- and cy > --[kezdeti Y kordi]-- and cx < --[vége X kordi]-- and cy < --[vége Y kordi]-- then
--bennevan
else
--nincs benne
próbáld meg ezt
-
World koordinátákról beszélek, nem a képernyőről. Értelem szerűen nem működik már próbáltam.
-
Ha elküldöd, hogy hogy rajzoltad ki a rectangle-t, ránézek neked.
-
function truck.handleRender ( rotatedX, rotatedY, vehZ, compX, compY, compZ )
local sx,sy = getScreenFromWorldPosition(compX,compY,compZ+0.2)
local x,y,z = getElementPosition(localPlayer)
if sx and sy then
local distance2 = getDistanceBetweenPoints3D(x,y,z,compX,compY,compZ+0.2)
local distance2 = distance2-(distance2/3)
local progress = distance2/12.5
local screenx, screeny, worldx, worldy, worldz = getCursorPosition()
local scale = interpolateBetween(0.7, 0, 0, 0, 0, 0, progress, \"OutQuad\")
dxDrawRectangle(sx,sy,130*scale,120*scale,tocolor(0,0,0,195))
dxDrawImage(sx,sy,128*scale,128*scale,\"files/open.png\",0,0,0,tocolor(124,197,118,175))
end
end
-
Nos?
-
valaki? :)
-
Nos ha alaki tudja, akkor annak várom a válaszát. Köszönöm szépen! :)
-
local screenX, screenY = guiGetScreenSize()
function truck.handleRender ( rotatedX, rotatedY, vehZ, compX, compY, compZ )
local sx,sy = getScreenFromWorldPosition(compX,compY,compZ+0.2)
local x,y,z = getElementPosition(localPlayer)
if sx and sy then
local distance2 = getDistanceBetweenPoints3D(x,y,z,compX,compY,compZ+0.2)
local distance2 = distance2-(distance2/3)
local progress = distance2/12.5
local scale = interpolateBetween(0.7, 0, 0, 0, 0, 0, progress, \"OutQuad\")
if isCursorShowing() then
local relativeX, relativeY = getCursorPosition()
local absoluteX, absoluteY = relativeX * screenX, relativeY * screenY
local boxSize = 128 * scale
local boxX, boxY = sx - (boxSize / 2), sy - (boxSize / 2)
if absoluteX >= boxX and absoluteX <= boxX + boxSize and absoluteY >= boxY and absoluteY <= boxY + boxSize then
-- mi történjen ha ráviszi a kurzort
end
end
dxDrawRectangle(sx,sy,130*scale,120*scale,tocolor(0,0,0,195))
dxDrawImage(sx,sy,128*scale,128*scale,\"files/open.png\",0,0,0,tocolor(124,197,118,175))
end
end