Wysłany: 2019-06-02, 16:53
Rumper
Majster od pysa
Wiek: 15 Na forum: 3316 dni Posty: 231
Nick w MP: Rumper
Piwa : 592
Witam,mam taki problem ?e m?j kolega ma tak jakby inn? pozycje dx ni? ja.Pr?bowa?em to w inny spos?b wyskalowa? ale nadal nie dzia?a?o
dxDrawText ( "text" , screenW * 0.1000 , screenH * 0.7000 , screenW * 0.5012 , screenH * 0.7500 , tocolor ( 255 , 255 , 255 , 255 ), 1.00 , "default" , "center" , "center" , false )
Wysłany: 2019-06-03, 12:38
MeeShuffle
Programista/Grafik
Wiek: 32 Na forum: 4395 dni Posty: 2758
Nick w MP: Shuffle
Piwa : 8575
Najlepiej tworzy? elementy GUI za pomoc? GUIEDITOR. Jest tam funkcja skalowania relatywnego ( opcja "relative" ). Niewa?ne przy jakiej robisz rozdzielczosci i tak wyskaluje samo do kazdej
Wysłany: 2019-06-03, 16:02
Rumper
Majster od pysa
Wiek: 15 Na forum: 3316 dni Posty: 231
Nick w MP: Rumper
Piwa : 592
Shuffle , Te? pr?bowa?em ale nadal to samo.
Wysłany: 2019-06-03, 16:21
MeeShuffle
Programista/Grafik
Wiek: 32 Na forum: 4395 dni Posty: 2758
Nick w MP: Shuffle
Piwa : 8575
Musisz robi? co? ?le, jestem w trakcie pisania GM, skaluje wszystko w ten spos?b i dzia?a.
Wysłany: 2019-06-03, 17:24
Rumper
Majster od pysa
Wiek: 15 Na forum: 3316 dni Posty: 231
Nick w MP: Rumper
Piwa : 592
local show = false
function przewodnik ()
local screenW , screenH = guiGetScreenSize ()
local sx , sy = guiGetScreenSize ()
local data ={ showed = nil , button ={}, info = nil , misc = nil , }
-- pys
function isMouseIn ( psx , psy , pssx , pssy , abx , aby )
if not isCursorShowing () then return end
cx , cy = getCursorPosition ()
cx , cy = cx * sx , cy * sy
if cx >= psx and cx <= psx + pssx and cy >= psy and cy <= psy + pssy then
return true , cx , cy
else
return false
end
end
-- pys
if show == true then
dxDrawRectangle ( screenW * 0.2313 , screenH * 0.1711 , screenW * 0.5375 , screenH * 0.5767 , tocolor ( 0 , 0 , 0 , 232 ), false )
dxDrawImage ( screenW * 0.4006 , screenH * 0.1522 , screenW * 0.1988 , screenH * 0.2956 , ":pystories-logging/logo.png" , 0 , 0 , 0 , tocolor ( 255 , 255 , 255 , 255 ), false )
dxDrawText ( "text" , sx * 100 / 1024 , sy * 820 / 768 , sx * 500 / 1024 , sy * 302 / 768 , white , 1.0 , "default-bold" , "center" , "center" , false )
end
end
function button ()
if show == true then
show = false
elseif show == false then
show = true
end
end
bindKey ( "F1" , "down" , button )
addEventHandler ( 'onClientRender' , root , przewodnik )
addEventHandler ( "onClientResourceStart" , root , przewodnik )
No niestety wszystko dobrze robie ale nadal to nie dzia?a.
Wysłany: 2019-06-04, 15:04
MeeShuffle
Programista/Grafik
Wiek: 32 Na forum: 4395 dni Posty: 2758
Nick w MP: Shuffle
Piwa : 8575
Wysłany: 2019-06-04, 18:41
Rumper
Majster od pysa
Wiek: 15 Na forum: 3316 dni Posty: 231
Nick w MP: Rumper
Piwa : 592
Wysłany: 2019-06-06, 15:13
MeeShuffle
Programista/Grafik
Wiek: 32 Na forum: 4395 dni Posty: 2758
Nick w MP: Shuffle
Piwa : 8575
Prze?lij mi na screenie wygl?d tego okna. Spr?buje ci to zrobi? podobnie do twojego z tym skalowaniem
Wysłany: 2019-06-06, 16:58
boszboszek
HEY
Wiek: 14 Na forum: 3505 dni Posty: 146
Nick w MP: boszboszek
Piwa : 2172
Skalowanie nie jest dzia?aniem schematycznym i nie ma na niego wzoru, kt?ry dzia?a zawsze w taki sam spos?b. Pozycjonowanie interfejsu polega g??wnie na matematyce i logice.
Odsy?am Ci? tutaj do mojego poradnika dotycz?cego skalowania od?rodkowego: https://gtao.pl/skalownie-odsrodkowe-vt123174.htm
PS: Nie polecam pozycjonowania gui-editorem.
Wysłany: 2019-06-07, 16:33
MeeShuffle
Programista/Grafik
Wiek: 32 Na forum: 4395 dni Posty: 2758
Nick w MP: Shuffle
Piwa : 8575
"boszboszek" napisał/a :Skalowanie nie jest dzia?aniem schematycznym i nie ma na niego wzoru, kt?ry dzia?a zawsze w taki sam spos?b. Pozycjonowanie interfejsu polega g??wnie na matematyce i logice.
Odsy?am Ci? tutaj do mojego poradnika dotycz?cego skalowania od?rodkowego: https://gtao.pl/skalownie-odsrodkowe-vt123174.htm
PS: Nie polecam pozycjonowania gui-editorem.
Skaluje guieditorem od 6 lat, ka?dy m?j serwer opiera? si? o skalowanie relatywne. Nic do niego nie mam, jest bardzo dobre.
Wysłany: 2019-06-08, 19:44
Rumper
Majster od pysa
Wiek: 15 Na forum: 3316 dni Posty: 231
Nick w MP: Rumper
Piwa : 592
Wysłany: 2019-06-10, 19:58
marcin778
Krytyk serwerów MTA
Wiek: 24 Na forum: 4149 dni Posty: 2268
Nick w MP: Marcineg
Piwa : 4662
Skalowanie od?rodkowe nie jest z?otym sposobem i przede wszystkim nie jest dobrym sposobem. Skalowanie relatywne jest jak dot?d najlepsz? metod?, przynajmniej w moich oczach. Osobi?cie korzystam z takiego sposobu
x * screenX * 1.2
y * screenY * 1.3
To samo tyczy si? szeroko?ci (1.2) i wysoko?ci (1.3), rozmiar tekstu tak?e mo?emy tym skalowa?. Nigdy nie mia?em problemu z jakim? drastycznym zauwa?alnym spadkiem jako?ci obrazk?w. Ponadto skalowanie relatywne dzia?a logicznie, skoro co? np na 800x600 jest w pozycji 210,150 to (210/800) * screenX, (150/600) * screenY Ja do swoich potrzeb doda?em sobie w?asny mno?nik 1.2 i 1.3. Nie podajemy tutaj normalnych pozycji, 210 * screenX, tylko jej podzielon? warto??. Wa?n? spraw? te? jest pozycjonowanie interfejsu, nie jest to co prawda konieczne ale z pewno?ci? nieco u?atwia ten ?mudny proces skalowania. Argument "relative" w CEGUI dzia?a dok?adnie tak samo, a tam nikt nie narzeka. Poza tym no panowie, gdyby ten spos?b z guieditora mia?by by? bez sensu to nie zosta?by w og?le wprowadzony do gui editora Wystarczy jedynie odrobina oleju w g?owie i umiej?tno?? logicznego my?lenia.
Jak ja skaluj?? Nie dziel? warto?ci przez gui editor, wszystko ustawiam r?cznie.
Np.
local screenX , screenY = guiGetScreenSize ()
local x = 0.0145 * screenX * 1.2
local y = 0.2725 * screenY * 1.3
local w = 0.498 * screenX * 1.2
local h = 0.238 * screenY * 1.3
addEventHandler ( "onClientRender" , root ,function()
dxDrawRectangle ( x , y , w , h , 0xFFFFFFFF , false )
end )
Osobi?cie w przypadku obrazk?w jako w i h podaj? rozmiar grafiki podzielony przez moj? rozdzielczo?? na kt?rej pracuj? i przez mno?nik. Przyk?adowo mamy obrazek 300x75. Pracujemy np na 1440x900. Odpalamy kalkulator czy systemowy, czy w telefonie, czy w przegl?darce; gdziekolwiek. Dzielimy 300 / 1440 / 1.2 = 0.173. Nast?pnie wysoko??. 75 / 900 / 1.3 = 0.064. Wi?c przenosimy do lua
local w = 0.173 * screenX * 1.2
local h = 0.064 * screenY * 1.3
Oczywi?cie mo?emy manipulowa? tym rozmiarem bo nie zawsze domy?lny rozmiar nam pasuje, to tylko przyk?ad.
Tagi: skalowanie
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: