iAxel Posted January 25, 2015 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 координат, но не у всех одинаковый монитор Помогите решить проблему
iAxel Posted January 26, 2015 Author 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) Ну как в браузере
iAxel Posted January 30, 2015 Author Posted January 30, 2015 Можно ли узнать координаты курсора внутри RenderTarget?
N1kS Posted January 30, 2015 Posted January 30, 2015 А в чем проблема? Ты знаешь координаты курсора, знаешь где рисуется RT по X и Y. Прими эти координаты за 0, тобишь положение отрисовки минус текущие координаты. Вот и все.
iAxel Posted January 31, 2015 Author Posted January 31, 2015 А в чем проблема? Ты знаешь координаты курсора, знаешь где рисуется RT по X и Y. Прими эти координаты за 0, тобишь положение отрисовки минус текущие координаты. Вот и все. Можно пример?
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