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

Wysłany: 2012-11-23, 19:41


pidbulxd







Wiek: 28
Na forum: 5230 dni
Posty: 135
Nick w MP: Word

Piwa: 540

Respekt: 60

Witajcie, jak robie gui na mojej rozdzielczosci <1280x720>, gracze z mniejsza rozdzielczoscia widz? p?? lub prawie nic. Co zrobi? aby ka?dy widzia? tak samo?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-11-23, 20:16


Brzysiek

Skrypter pralek






Wiek: 27
Na forum: 5198 dni
Posty: 488
Nick w MP: Brzysiek

Piwa: 1034

Respekt: 360
Respekt: 360Respekt: 360Respekt: 360Respekt: 360

U?ywasz funkcji guiGetScreenSize. Dam ci przyk?ad na guiCreateWindow :

local rozdzielczoscX 1280 -- twoja rozdzielczosc
local rozdzielczoscY 720
local sWidth,sHeight guiGetScreenSize( )
guiCreateWindow ( (354/rozdzielczoscX)*sWidth(342, (0/rozdzielczoscY)*sHeight, (0.5/rozdzielczoscX)*sWidth, (0.4/rozdzielczoscY)*sHeight"kocham klocucha12 <33"true ) -- o ile sinie myl?, argument relative(ten ostatnito musi bytrue ;x


Od teraz, okno jest dopasowane do wszystkich rozdzielczo?ci.
Liczby s? totalnie losowe. (pierwsza liczba, przed np rozdzielczoscX to warto?? relatywna(?), zwracaj? si? np w guieditorze).
By?o ju? du?o temat?w o tym, sam szuka?em :D
Ja ni umiem t?umaczy? za bardzo, patrzaj na wypowied? Wielebnego.

"Wielebny" napisał/a:

Prawid?owy spos?b:

Projektujesz swoje GUI w jakiej? rozdzielczo?ci (ja zawsze robie w 640x480).

Wszystkie rozmiary i odleglosci nie podajesz jako wartosci absolutne, tylko przetwarzasz za pomoc? nastepuj?cego wzoru:

przeskalowany x = x podczas projektowania / szerokosc podczas projektowania * szerokosc ekranu gracza

przeskalowany y = y podczas projektowania / wysokosc podczas projektowania * wysokosc ekranu gracza

Przyk?adowy kod:

Kod:


dxDrawText("ten tekst jest po srodku ekranu w 640x480", 320,240)

local sw,sh=guiGetScreenSize()
dxDrawText("ten tekst jest po srodku ekranu w kazdej rozdzielczosci", 320/640*sw, 240/480*sh)


Te same wzory mo?esz zastosowa? r?wnie? do wysoko?ci i szeroko?ci element?w (r?wnoleg?ych do kraw?dzi ekranu), dzi?ki czemu rozmiar Twojego paska paliwa mo?e si? skalowa? do ka?dej rozdzielczo?ci i zawsze zajmowa? np. 1/3 wysoko?ci ekranu.


Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-11-24, 10:49


pidbulxd







Wiek: 28
Na forum: 5230 dni
Posty: 135
Nick w MP: Word

Piwa: 540

Respekt: 60

Brzysiek, czyli ka?dy przycisk, ka?de okienko musze tak robi? ?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-11-24, 11:44


Brzysiek

Skrypter pralek






Wiek: 27
Na forum: 5198 dni
Posty: 488
Nick w MP: Brzysiek

Piwa: 1034

Respekt: 360
Respekt: 360Respekt: 360Respekt: 360Respekt: 360

Wystarczy, ?e zrobisz z u?yciem guiGetScreenSize jedno okno - wszystko, co w nim jest(przyciski, labele) b?d? dopasowane do wszystkich rozdzielczo?ci.
Je?li robisz np dxDrawRectangle, a w nim przyciski, to musisz wszystkie z osobna tak robi?.

Postaw piwo autorowi tego posta
 

 
Tagi: gui
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Gui 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