Szerző Téma: dxDrawRectangle szín változtatás  (Megtekintve 1823 alkalommal)

dxDrawRectangle szín változtatás
« Dátum: 2017. január 25. - 20:16:41 »
0 Show voters
Sziasztok. Nem tudom hogy lehetséges-e ilyet, ( valószínű én vagyok a hülye és nem :D ) hogy ha ráhúzom az egeret a dxDrawRectangle-ra, akkor pl. zöldről pirosra vált át, de amint leveszem onnan vissza vált az eredeti színére. ( Nem kattintásnál.). Ha igen, hogyan lehetséges ez?

dxDrawRectangle szín változtatás
« Válasz #1 Dátum: 2017. január 25. - 20:45:16 »
0 Show voters

local screenWidth, screenHeight = guiGetScreenSize()
addEventHandler(\"onClientRender\", root, function()
dxDrawRectangle(screenWidth/2 - 300, screenHeight/2 - 200, 600, 400, (isCursorInPosition(screenWidth/2 - 300, screenHeight/2 - 200, 600, 400) and tocolor(255, 0, 0) or tocolor(0, 255, 0)))
end)
function isCursorInPosition(rectX, rectY, rectW, rectH)
local cursorX, cursorY = getCursorPosition()
cursorX, cursorY = cursorX * screenWidth, cursorY * screenHeight
return (cursorX >= rectX and cursorX <= rectX+rectW) and (cursorY >= rectY and cursorY <= rectY+rectH)
end

 
 

dxDrawRectangle szín változtatás
« Válasz #2 Dátum: 2017. február 01. - 10:38:45 »
0 Show voters
Köszi, működik, csak én guiGetScreenSize nélkül akarom megcsinálni, próbáltam kiszedni belőle, és átírni a sajátomra, de nem megy ( bocsi, még kezdő vagyok. ) ( vagy nem is látszódik utána a gomb, vagy más helyen van, vagy nem színeződik át. ) Kérlek tudsz ebben segíteni.
 

dxDrawLine(1063 - 1, 384 - 1, 1063 - 1, 758, tocolor(0, 16, 227, 156), 1, false)
        dxDrawLine(1356, 384 - 1, 1063 - 1, 384 - 1, tocolor(0, 16, 227, 156), 1, false)
        dxDrawLine(1063 - 1, 758, 1356, 758, tocolor(0, 16, 227, 156), 1, false)
        dxDrawLine(1356, 758, 1356, 384 - 1, tocolor(0, 16, 227, 156), 1, false)
        dxDrawRectangle(1063, 384, 293, 374, tocolor(0, 0, 0, 156), false)
        dxDrawRectangle(1062, 383, 294, 17, tocolor(0, 16, 227, 156), false)
        dxDrawText(\"Egyedi skinek\", 1060, 382, 1356, 400, tocolor(255, 255, 255, 255), 1.00, \"default-bold\", \"center\", \"center\", false, false, false, false, false)
        dxDrawRectangle(1082, 421, 254, 35, tocolor(201, 0, 0, 164), false)
        dxDrawRectangle(1082, 466, 254, 35, tocolor(201, 0, 0, 164), false)
        dxDrawRectangle(1082, 511, 254, 35, tocolor(201, 0, 0, 164), false)
        dxDrawRectangle(1082, 556, 254, 35, tocolor(201, 0, 0, 164), false)
        dxDrawRectangle(1082, 601, 254, 35, tocolor(201, 0, 0, 164), false)
        dxDrawRectangle(1082, 646, 254, 35, tocolor(201, 0, 0, 164), false)
        dxDrawRectangle(1082, 691, 254, 35, tocolor(201, 0, 0, 164), false)
        dxDrawText(\"Black Dwarf\", 1081, 420, 1336, 456, tocolor(0, 0, 0, 254), 1.50, \"default-bold\", \"center\", \"center\", false, false, false, false, false)
        dxDrawText(\"Kilépés\", 1082, 690, 1337, 726, tocolor(0, 0, 0, 254), 1.50, \"default-bold\", \"center\", \"center\", false, false, false, false, false)
        dxDrawText(\"-\", 1082, 465, 1337, 501, tocolor(0, 0, 0, 254), 1.50, \"default-bold\", \"center\", \"center\", false, false, false, false, false)
        dxDrawText(\"-\", 1082, 511, 1337, 547, tocolor(0, 0, 0, 254), 1.50, \"default-bold\", \"center\", \"center\", false, false, false, false, false)
        dxDrawText(\"-\", 1082, 555, 1337, 591, tocolor(0, 0, 0, 254), 1.50, \"default-bold\", \"center\", \"center\", false, false, false, false, false)
        dxDrawText(\"-\", 1082, 600, 1337, 636, tocolor(0, 0, 0, 254), 1.50, \"default-bold\", \"center\", \"center\", false, false, false, false, false)
        dxDrawText(\"-\", 1082, 646, 1337, 682, tocolor(0, 0, 0, 254), 1.50, \"default-bold\", \"center\", \"center\", false, false, false, false, false)

dxDrawRectangle szín változtatás
« Válasz #3 Dátum: 2017. február 01. - 12:27:34 »
+1 Show voters
Így más felbontáson elcsúszik.

dxDrawRectangle szín változtatás
« Válasz #4 Dátum: 2017. február 01. - 20:02:51 »
0 Show voters
Én ezt értem, illetve tudom is, csak sajnos a guieditornak nincs olyan része ( tudtommal, ha van akkor annak örülnék ) ahol ezt meg lehet csinálni. :/ 

dxDrawRectangle szín változtatás
« Válasz #5 Dátum: 2017. február 02. - 07:04:14 »
+1 Show voters
Miért ne lenne? Ott is meg kell adnod a panel pozíciót csupán nem \"számokkal\" töltöd fel, hanem mint az első példában leírt módon (ami amúgy szám értékkel tér vissza, csak hát nyilván első ránézésre szöveg

dxDrawRectangle szín változtatás
« Válasz #6 Dátum: 2017. február 02. - 21:39:01 »
0 Show voters
Annyi, hogy amit a dxDrawRectangle-nél használsz első 4 argument, azt átmásolod az isCursorInPosition függvénybe.
 
De használd a guiGetScreenSize() -t. :D
 

dxDrawRectangle(1082, 421, 254, 35, tocolor(201, 0, 0, 164), false)
  ->
dxDrawRectangle(1082, 421, 254, 35, (isCursorInPosition(1082, 421, 254, 35) and tocolor(RGB, amikor rajta van az egér) or tocolor(RGB, amikor nincs rajta az egér)), false)

dxDrawRectangle szín változtatás
« Válasz #7 Dátum: 2017. február 03. - 16:18:56 »
+1 Show voters
Idézetet írta: impreZZa date=1486067941


   
      Annyi, hogy amit a dxDrawRectangle-nél használsz első 4 argument, azt átmásolod az isCursorInPosition függvénybe.
   
   
      De használd a guiGetScreenSize() -t. :D
   
   

dxDrawRectangle(1082, 421, 254, 35, tocolor(201, 0, 0, 164), false)
  ->
dxDrawRectangle(1082, 421, 254, 35, (isCursorInPosition(1082, 421, 254, 35) and tocolor(RGB, amikor rajta van az egér) or tocolor(RGB, amikor nincs rajta az egér)), false)



De ezt a fix szám megadást ne használja semmiféleképpen, mivel ezzel pl egy 800x600-ban 1082px-el fog odébb kerülni, ami azt jelenti, hogy a képernyőn kívülre fog esni a téma. :D Mondjuk én láttam már szépeket ilyen megoldásra (pl.: 1000+ 500/2 *1,5 + 500 - 150 .... stb stb). :D

dxDrawRectangle szín változtatás
« Válasz #8 Dátum: 2017. február 04. - 16:04:19 »
0 Show voters
Na, hülye vagyok bocsi, ezt a guigetscreensize-hoz, vagyis nem nagyon fogtam fel amit mondtál.... :D  Ha csak oda írom hogy screenWidht/2 - 1082 ( pl. ), akkor ez még nem fog  ugyan ott maradni sajnos.

dxDrawRectangle szín változtatás
« Válasz #9 Dátum: 2017. február 05. - 11:34:42 »
0 Show voters
guiGetScreenSize() -> ez arra szolgál hogy lekéri a képernyőd jelenlegi beállítását amit használsz épp az mtaban. Ezt teheted táblába és akkor egy deffinálással kéred le az x és y tengelyre vonatkozó értéket vagy teheted úgy is ahogy leírták már (két elnevezés vesszővel). Ha középről szeretnél ki indulni, mivel mondjuk nem valamelyik sarok vagy képernyő szélét választod akkor mindenképp a képernyőd x tengelyét el kell osztanod kettővel (matek, hiszen a közepe kell neked az adott számból) ebből pedig kivonod panelod magasságát, amit osztanod kell kettővel (megint csak matek végett). Ekkor a panelod középre kerül mindenkinek. Innen tudsz mozogni ha akarsz. Ha széleket választod ott értelem szerűen nem kell osztogatni.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal