iAxel Posted January 25, 2015 Share Posted January 25, 2015 Привет всем! Решил сделать DxScroll, ну вроде получилось не плохо. Но проблема в том что не как не могу ограничить видимость вещей внутри Rectangle. Скриншоты Код local sW, sH = guiGetScreenSize() local bW, bH = (sW/2), (sH/2) local offset = 0 -- addEventHandler('onClientRender', root, function () if (isLogged(localPlayer)) then dxDrawRectangle(bW+190, bH-300, 320, 20, tocolor(0, 0, 0, 255)) dxDrawText('INVENTORY', bW+195, bH-300, bW+510, bH-280, tocolor(160, 160, 160, 255), 1, 'default', 'left', 'center', false, false, true, false, false) --Box dxDrawLine(bW+190, bH-281, bW+190, bH+280, tocolor(200, 200, 200, 100), 1) dxDrawLine(bW+510, bH-281, bW+190, bH-281, tocolor(200, 200, 200, 100), 1) dxDrawLine(bW+190, bH+280, bW+510, bH+280, tocolor(200, 200, 200, 100), 1) dxDrawLine(bW+510, bH+280, bW+510, bH-281, tocolor(200, 200, 200, 100), 1) dxDrawRectangle(bW+191, bH-280, 319, 560, tocolor(0, 0, 0, 70)) dxDrawLine(bW+500, bH-280, bW+500, bH+279, tocolor(200, 200, 200, 100), 1) --Scrollbar dxDrawLine(bW+502, bH-280+offset, bW+502, bH-109+offset, tocolor(200, 200, 200, 100), 1) dxDrawLine(bW+508, bH-280+offset, bW+502, bH-280+offset, tocolor(200, 200, 200, 100), 1) dxDrawLine(bW+502, bH-109+offset, bW+508, bH-109+offset, tocolor(200, 200, 200, 100), 1) dxDrawLine(bW+508, bH-109+offset, bW+508, bH-280+offset, tocolor(200, 200, 200, 100), 1) dxDrawRectangle(bW+503, bH-279+offset, 5, 170, tocolor(0, 0, 0, 0)) --Items for i = 1, 10 do dxDrawRectangle(bW+191, bH-345+65*i-offset, 309, 60, tocolor(100, 100, 100, 200)) dxDrawImage(bW+191, bH-345+65*i-offset, 60, 60, ':guieditor/images/plus.png', 0, 0, 0, tocolor(255, 255, 255, 255)) dxDrawText('Backpack '..i, bW+261, bH-326+65*i-offset, bW+499, bH-306+65*i-offset, tocolor(255, 255, 255, 255), 1, 'default-bold', 'left', 'center', false, false, true, false, false) dxDrawText('0/'..i, bW+451, bH-346+65*i-offset, bW+499, bH-326+65*i-offset, tocolor(255, 255, 255, 255), 1, 'default-bold', 'right', 'center', false, false, true, false, false) end end end end ) -- function Scroll(key, state) if (isLogged(localPlayer)) then if (state == 'down') then if (key == 'mouse_wheel_up') then if (offset > 0) then offset = offset-97 else offset = 0 end elseif (key == 'mouse_wheel_down') then if (offset < 388) then offset = offset+97 else offset = 388 end end end end end bindKey('mouse_wheel_up', 'down', Scroll) bindKey('mouse_wheel_down', 'down', Scroll) Конечно можно ограничить видимость с помощью offset и Y координат, но не у всех одинаковый монитор Помогите решить проблему Link to comment
Kenix Posted January 25, 2015 Share Posted January 25, 2015 dxCreateRenderTarget dxSetRenderTarget Link to comment
iAxel Posted January 26, 2015 Author Share Posted January 26, 2015 dxCreateRenderTarget dxSetRenderTarget Спасибо помогло. dxSetRenderTarget(rBox, true) for i = 1, 10 do dxDrawRectangle(0, mX-224+65*i-offset, 309, 60, tocolor(50, 50, 50, 235)) dxDrawImage(0, mX-224+65*i-offset, 60, 60, ':guieditor/images/plus.png') dxDrawText('Backpack '..i, mX-89.5, mX-203+65*i-offset) dxDrawText(i..'/35', mX+115.5, mX-224+65*i-offset) end dxSetRenderTarget() dxDrawRectangle(bW+191, bH-280, 319, 560, tocolor(0, 0, 0, 70)) dxDrawImage(bW+191, bH-280, 319, 560, rBox) dxDrawLine(bW+500, bH-280, bW+500, bH+279, tocolor(200, 200, 200, 100), 1) Можете помочь сделать scrollbar так чтобы его размер менялся смотря на количество объектов внутри, заранее благодарен --Scrollbar dxDrawLine(bW+502, bH-280+offset, bW+502, bH-109+offset, tocolor(200, 200, 200, 100), 1) dxDrawLine(bW+508, bH-280+offset, bW+502, bH-280+offset, tocolor(200, 200, 200, 100), 1) dxDrawLine(bW+502, bH-109+offset, bW+508, bH-109+offset, tocolor(200, 200, 200, 100), 1) dxDrawLine(bW+508, bH-109+offset, bW+508, bH-280+offset, tocolor(200, 200, 200, 100), 1) Ну как в браузере Link to comment
iAxel Posted January 30, 2015 Author Share Posted January 30, 2015 Можно ли узнать координаты курсора внутри RenderTarget? Link to comment
N1kS Posted January 30, 2015 Share Posted January 30, 2015 А в чем проблема? Ты знаешь координаты курсора, знаешь где рисуется RT по X и Y. Прими эти координаты за 0, тобишь положение отрисовки минус текущие координаты. Вот и все. Link to comment
iAxel Posted January 31, 2015 Author Share Posted January 31, 2015 А в чем проблема? Ты знаешь координаты курсора, знаешь где рисуется RT по X и Y. Прими эти координаты за 0, тобишь положение отрисовки минус текущие координаты. Вот и все. Можно пример? Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now