Wysłany: 2018-08-13, 19:15
boszboszek
HEY
Wiek: 14 Na forum: 3505 dni Posty: 146
Nick w MP: boszboszek
Piwa : 2172
Witam,
chcia?bym nauczy? wielu "skrypter?w" skalowania od?rodkowego. Bo jak patrze na niekt?rych skalowanie, to ?apie si? za g?ow?. Jedynym minusem tego skalowania jest wym?g posiadania monitora full hd.
Je?eli chcemy wyskalowa? cokolwiek - musimy pobra? rozdzielczo?? ekranu gracza.
local sx , sy = guiGetScreenSize () -- zwraca nam o ? X i o ? Y , np . 1920 1080
Nast?pnie tworzymy zmienn?, kt?ra b?dzie dzieli?a nasz? o? X(1920) na o? X clienta.
Czyli jak skalujemy w full hd to zmienna b?dzie r?wna 1 - wynika to z prostego obliczenia (1920/1920 = 1)
Musimy nauczy? si? te? pozycjonowa? interfejs:
Od prawej do ?rodka:
Od lewej do ?rodka:
?rodek:
Od g?ry do ?rodka:
Od do?u do ?rodka:
?rodek:
Pami?tajcie te?, ?e je?eli chcecie wyskalowa? obrazek w dobrej jako?ci to powi?kszenie jego musi by? proporcjonalne tzn. IMG jest w wymiarach 300x300, je?eli chcemy go poszerzy? dwukrotnie - musimy te? tak samo powi?kszy? drug? warto??, np. 600x600. Wtedy jest ma?a utrata jako?ci.
U?atwiona funkcja do skalowania interfejsu stworzona przeze mnie.
local sx , sy = guiGetScreenSize ()
local zoom = 1920 / sx
function scaleX ( type , value )
if type == 'center' then
return math . floor ( sx / 2 - value / zoom )
elseif type == 'left' then
return math . floor ( sx - value / zoom )
elseif type == 'right' then
return math . floor ( value / zoom )
end
end
function scaleY ( type , value )
if type == 'center' then
return math . floor ( sy / 2 - value / zoom )
elseif type == 'top' then
return math . floor ( value / zoom )
elseif type == 'down' then
return math . floor ( sy - value / zoom )
end
end
function scaleImage ( value )
return math . floor ( value / zoom )
end
Przyk?ad:
local sx , sy = guiGetScreenSize ()
local zoom = 1920 / sx
addEventHandler ( 'onClientRender' , root , function()
dxDrawRectangle ( sx / 2 - 300 / zoom , sy / 2 - 300 / zoom , 600 / zoom , 600 / zoom , tocolor ( 0 , 0 , 0 , 220 ))
dxDrawText ( sx .. 'x' .. sy , sx / 2 - 300 / zoom , sy / 2 - 300 / zoom , 600 / zoom + sx / 2 - 300 / zoom , 600 / zoom + sy / 2 - 300 / zoom , tocolor ( 255 , 255 , 255 , 255 ), 2 / zoom , 'center' , 'center' )
end )
Rezultat:
Mam nadziej?, ?e Wam pomog?em - je?eli s? jakie? b??dy, to prosz? o poprawienie mnie. Z g?ry dzi?kuje
Ostatnio zmieniony przez boszboszek 2019-06-11, 15:06, w całości zmieniany 3 razy
Więcej szczegółów
Wystawiono 2 piw(a):BialyDran , Zbigniewqq
Wysłany: 2018-08-13, 19:20
Pevo
Jabłko
Wiek: 23 Na forum: 3589 dni Posty: 356
Nick w MP: Pevo
Piwa : 1571
Bardzo dobry i warto?ciowy poradnik. Wszystko pi?knie rozpisane
Wysłany: 2018-08-13, 21:35
Kalizman
Wiek: 23 Na forum: 3651 dni Posty: 1394
Piwa : 4619
poleca?bym doda? na sam koniec poradnika ca?e skalowanie i jaki? przyk?ad (niekoniecznie)
Wysłany: 2018-08-27, 16:09
OchIAch
Wiek: 26 Na forum: 3114 dni Posty: 144
Nick w MP: OchIAch
Piwa : 1311
?rednio zrozumia?e. Dasz jaki? przyk?ad? Zamiast np. zmienna/warto?? co mam wpisa??
Wysłany: 2018-08-28, 18:30
Mikołajj
Wiek: 22 Na forum: 2885 dni Posty: 303
Nick w MP: Mikołaj
Piwa : 132
"OchIAch" napisał/a :?rednio zrozumia?e. Dasz jaki? przyk?ad? Zamiast np. zmienna/warto?? co mam wpisa??
Jak to co masz wpisa?? Zmienna to zmienna i definiujesz jej nazw? wed?ug siebie...
Wysłany: 2018-10-01, 18:53
DomineQ
lua mejster
Wiek: 22 Na forum: 3960 dni Posty: 309
Nick w MP: EZ3N
Piwa : 5186
Czyli rozumiem to tak, ?e je?eli chc? wyskalowa? obrazek, ?eby nie traci? jako?ci, to je?eli jego wymiary to 300x300 np, to musz? go powi?kszy? x2?
Chodzi mi czy to powinno tak wygl?da?:
sx / zmienna , sy / zmienna , 600 / zmienna , 600 / zmienna
Wysłany: 2018-10-04, 16:00
boszboszek
HEY
Wiek: 14 Na forum: 3505 dni Posty: 146
Nick w MP: boszboszek
Piwa : 2172
"DomineQ" napisał/a :Czyli rozumiem to tak, ?e je?eli chc? wyskalowa? obrazek, ?eby nie traci? jako?ci, to je?eli jego wymiary to 300x300 np, to musz? go powi?kszy? x2?
Chodzi mi czy to powinno tak wygl?da?:
sx / zmienna , sy / zmienna , 600 / zmienna , 600 / zmienna
Dok?adnie o to chodzi?o, lecz pami?taj aby? powi?ksza? obraz z umiarem, poniewa? jest to grafika rastrowa, a nie wektorowa.
[ Dodano : 2018-11-20, 18:27 ]
Stworzy?em now? funkcje, zapraszam ^^
Wysłany: 2018-11-23, 09:09
Vxen
Wiek: 27 Na forum: 4086 dni Posty: 293
Piwa : 1299
Mo?e kto? da? jakie? skalowanie przyk?adowe jakiego? obrazka 215/215px.
Wysłany: 2018-11-23, 12:00
Piorun
Wiek: 32 Na forum: 6712 dni Posty: 1837
Nick w MP: Piorun
Piwa : 516
Z?ota zasada skalowania: nie skaluj.
Wysłany: 2018-12-07, 22:37
Vxen
Wiek: 27 Na forum: 4086 dni Posty: 293
Piwa : 1299
Mo?e kto? da? przyk?ad na dxDrawRectangle
Wysłany: 2018-12-08, 19:22
Vruzzi
Wiek: 20 Na forum: 2869 dni Posty: 77
Piwa : 610
przyda? by si? poradnik bardziej dla zielonych
Wysłany: 2018-12-10, 23:17
boszboszek
HEY
Wiek: 14 Na forum: 3505 dni Posty: 146
Nick w MP: boszboszek
Piwa : 2172
"Vruzzi" napisał/a :przyda? by si? poradnik bardziej dla zielonych
W bardziej ziemski spos?b nie mog?em tego wyt?umaczy?
Wysłany: 2019-01-04, 23:04
ZZiomek
..::LUA::..
Wiek: 26 Na forum: 3867 dni Posty: 134
Nick w MP: NexBoy
Piwa : 5961
boszboszek ,
dxDrawRectangle ( scaleX ( center , 100 ), scaleY ( center , 100 ), scaleX ( center , 50 ), scaleY ( center , 50 ), tocolor ( 0 , 0 , 0 , 220 ))
W taki spos?b ma to by? zrobione?
Lub te? w taki?
dxDrawRectangle ( sx / 2 - 305 / zoom , sy / 2 - 250 / zoom , sx / 2 - 350 / zoom , sy / 2 + 50 / zoom , tocolor ( 0 , 0 , 0 , 220 ))
Podpis
Dodaj na Steam: Kod: 1093365219
Discord: NoOne#3644
Wysłany: 2019-01-13, 16:19
Zbigniewqq
Szkrypter Luła
Wiek: 23 Na forum: 3090 dni Posty: 83
Nick w MP: Zbigniewqq
Piwa : 1083
Wszystko bardzo ?adnie wyt?umaczone (?e nawet zielony by zrozumia? xD)
Oraz bardzo dobre skalowanie !
Zostawiam zimne
Wysłany: 2019-04-10, 09:30
Kacperiusz
.
Wiek: 23 Na forum: 2770 dni Posty: 113
Piwa : 205
Good poradniczek. Mi si? przyda? .
Czekam na wi?cej poradnik?w w twoim wykonaniu.
Tagi: skalownie :: odśrodkowe.
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: