Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2018-08-13, 19:15


boszboszek

HEY






Wiek: 14
Na forum: 3505 dni
Posty: 146
Nick w MP: boszboszek

Piwa: 2172

Respekt: 261
Respekt: 261Respekt: 261Respekt: 261

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 sxsy guiGetScreenSize() -- zwraca nam oX i oYnp1920 1080



Nast?pnie tworzymy zmienn?, kt?ra b?dzie dzieli?a nasz? o? X(1920) na o? X clienta.

zmienna 1920/sx


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:
sx wartosc/zmienna


Od lewej do ?rodka:
wartosc/zmienna


?rodek:
sx/wartosc/zmienna


Od g?ry do ?rodka:
wartosc/zmienna


Od do?u do ?rodka:
sy wartosc/zmienna


?rodek:
sy/wartosc/zmienna


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 sxsy guiGetScreenSize()
local zoom 1920/sx

function scaleX(typevalue)
    if type == 'center' then
        return math.floor(sx/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(typevalue)
    if type == 'center' then
        return math.floor(sy/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 sxsy guiGetScreenSize()
local zoom 1920 sx

addEventHandler('onClientRender'root, function()
    dxDrawRectangle(sx 300 zoomsy 300 zoom600 zoom600 zoomtocolor(000220))
    dxDrawText(sx .. 'x' .. sysx 300 zoomsy 300 zoom600 zoom sx 300 zoom600 zoom sy 300 zoomtocolor(255255255255), 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 :D

Ostatnio zmieniony przez boszboszek 2019-06-11, 15:06, w całości zmieniany 3 razy  
Postaw piwo autorowi tego posta
 

 
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

Respekt: 355,8
Respekt: 355,8Respekt: 355,8Respekt: 355,8Respekt: 355,8

Bardzo dobry i warto?ciowy poradnik. Wszystko pi?knie rozpisane :D

Podpis
Jabłko
Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-08-13, 21:35


Kalizman







Wiek: 23
Na forum: 3651 dni
Posty: 1394

Piwa: 4619

Respekt: 358,8
Respekt: 358,8Respekt: 358,8Respekt: 358,8Respekt: 358,8

poleca?bym doda? na sam koniec poradnika ca?e skalowanie i jaki? przyk?ad (niekoniecznie)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-08-27, 16:09


OchIAch







Wiek: 26
Na forum: 3114 dni
Posty: 144
Nick w MP: OchIAch

Piwa: 1311

Respekt: 105,3
Respekt: 105,3

Ostrzeżeń: 100%
?rednio zrozumia?e. Dasz jaki? przyk?ad? Zamiast np. zmienna/warto?? co mam wpisa??

Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-08-28, 18:30


Mikołajj







Wiek: 22
Na forum: 2885 dni
Posty: 303
Nick w MP: Mikołaj

Piwa: 132

Respekt: 91

"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...

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-10-01, 18:53


DomineQ

lua mejster






Wiek: 22
Na forum: 3960 dni
Posty: 309
Nick w MP: EZ3N

Piwa: 5186

Respekt: 85,8

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/zmiennasy/zmienna600/zmienna600/zmienna


Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-10-04, 16:00


boszboszek

HEY






Wiek: 14
Na forum: 3505 dni
Posty: 146
Nick w MP: boszboszek

Piwa: 2172

Respekt: 261
Respekt: 261Respekt: 261Respekt: 261

"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/zmiennasy/zmienna600/zmienna600/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 ^^

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-11-23, 09:09


Vxen







Wiek: 27
Na forum: 4086 dni
Posty: 293

Piwa: 1299

Respekt: 130,5
Respekt: 130,5

Mo?e kto? da? jakie? skalowanie przyk?adowe jakiego? obrazka 215/215px.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-11-23, 12:00


Piorun







Wiek: 32
Na forum: 6712 dni
Posty: 1837
Nick w MP: Piorun

Piwa: 516

Respekt: 480,7
Respekt: 480,7

Z?ota zasada skalowania: nie skaluj.

Podpis
Możesz mnie znaleźć na: Facebook
Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-12-07, 22:37


Vxen







Wiek: 27
Na forum: 4086 dni
Posty: 293

Piwa: 1299

Respekt: 130,5
Respekt: 130,5

Mo?e kto? da? przyk?ad na dxDrawRectangle

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-12-08, 19:22


Vruzzi







Wiek: 20
Na forum: 2869 dni
Posty: 77

Piwa: 610

Respekt: 35,8

przyda? by si? poradnik bardziej dla zielonych

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-12-10, 23:17


boszboszek

HEY






Wiek: 14
Na forum: 3505 dni
Posty: 146
Nick w MP: boszboszek

Piwa: 2172

Respekt: 261
Respekt: 261Respekt: 261Respekt: 261

"Vruzzi" napisał/a:

przyda? by si? poradnik bardziej dla zielonych


W bardziej ziemski spos?b nie mog?em tego wyt?umaczy? :(

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-01-04, 23:04


ZZiomek

..::LUA::..






Wiek: 26
Na forum: 3867 dni
Posty: 134
Nick w MP: NexBoy

Piwa: 5961

Respekt: 155,3
Respekt: 155,3Respekt: 155,3

boszboszek,
dxDrawRectangle(scaleX(center100), scaleY(center100), scaleX(center50), scaleY(center50), tocolor(000220))


W taki spos?b ma to by? zrobione?

Lub te? w taki?

dxDrawRectangle(sx/305/zoomsy/250/zoomsx/350/zoomsy/50/zoomtocolor(000220))


Podpis

Dodaj na Steam: Kod: 1093365219
Discord: NoOne#3644

Postaw piwo autorowi tego posta
 

 
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

Respekt: 61

Wszystko bardzo ?adnie wyt?umaczone (?e nawet zielony by zrozumia? xD)
Oraz bardzo dobre skalowanie :D !
Zostawiam zimne :piwo:

Podpis

100 :piwo: - 28.12.2018r.
200 :piwo: - 24.01.2019r.
300 :piwo: - 01.02.2019r.
Support-Team - 03.02.2019r.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-04-10, 09:30


Kacperiusz

.






Wiek: 23
Na forum: 2770 dni
Posty: 113

Piwa: 205

Respekt: 50

Good poradniczek. Mi si? przyda? :D .

Czekam na wi?cej poradnik?w w twoim wykonaniu.

Postaw piwo autorowi tego posta
 

 
Tagi: skalownie :: odśrodkowe.
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Poradniki do LUA » Skalownie odśrodkowe. Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku