Szerző Téma: Kurzor a valóságos box-ban.  (Megtekintve 1129 alkalommal)

Nem elérhető Tarack

  • 177
    • Profil megtekintése
Kurzor a valóságos box-ban.
« Dátum: 2017. Február 25. - 17:27:09 »
0
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!

Kurzor a valóságos box-ban.
« Válasz #1 Dátum: 2017. Február 25. - 17:47:13 »
0

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 

Nem elérhető Tarack

  • 177
    • Profil megtekintése
Kurzor a valóságos box-ban.
« Válasz #2 Dátum: 2017. Február 25. - 17:57:38 »
0
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.

Kurzor a valóságos box-ban.
« Válasz #3 Dátum: 2017. Február 25. - 18:03:45 »
0
Ha elküldöd, hogy hogy rajzoltad ki a rectangle-t, ránézek neked.

Nem elérhető Tarack

  • 177
    • Profil megtekintése
Kurzor a valóságos box-ban.
« Válasz #4 Dátum: 2017. Február 25. - 18:04:55 »
0

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

Nem elérhető Tarack

  • 177
    • Profil megtekintése
Kurzor a valóságos box-ban.
« Válasz #5 Dátum: 2017. Február 25. - 18:15:33 »
0
Nos?

Nem elérhető Tarack

  • 177
    • Profil megtekintése
Kurzor a valóságos box-ban.
« Válasz #6 Dátum: 2017. Február 25. - 18:43:53 »
0
valaki? :)

Nem elérhető Tarack

  • 177
    • Profil megtekintése
Kurzor a valóságos box-ban.
« Válasz #7 Dátum: 2017. Február 25. - 22:47:10 »
0
Nos ha alaki tudja, akkor annak várom a válaszát. Köszönöm szépen! :)

Nem elérhető Live

  • 507
    • Profil megtekintése
Kurzor a valóságos box-ban.
« Válasz #8 Dátum: 2017. Február 25. - 23:37:57 »
0

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

 
 

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal