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

Wysłany: 2019-06-02, 16:53


Rumper

Majster od pysa






Wiek: 15
Na forum: 3456 dni
Posty: 231
Nick w MP: Rumper

Piwa: 592

Respekt: 180
Respekt: 180Respekt: 180

Ostrzeżeń: 20%
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)


Podpis
Elo benc
Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-06-03, 12:38


MeeShuffle

Programista/Grafik






Wiek: 33
Na forum: 4535 dni
Posty: 2758
Nick w MP: Shuffle

Piwa: 8578

Respekt: 535,3
Respekt: 535,3

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 :)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-06-03, 16:02


Rumper

Majster od pysa






Wiek: 15
Na forum: 3456 dni
Posty: 231
Nick w MP: Rumper

Piwa: 592

Respekt: 180
Respekt: 180Respekt: 180

Ostrzeżeń: 20%
Shuffle, Te? pr?bowa?em ale nadal to samo.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-06-03, 16:21


MeeShuffle

Programista/Grafik






Wiek: 33
Na forum: 4535 dni
Posty: 2758
Nick w MP: Shuffle

Piwa: 8578

Respekt: 535,3
Respekt: 535,3

Musisz robi? co? ?le, jestem w trakcie pisania GM, skaluje wszystko w ten spos?b i dzia?a.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-06-03, 17:24


Rumper

Majster od pysa






Wiek: 15
Na forum: 3456 dni
Posty: 231
Nick w MP: Rumper

Piwa: 592

Respekt: 180
Respekt: 180Respekt: 180

Ostrzeżeń: 20%
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.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-06-04, 15:04


MeeShuffle

Programista/Grafik






Wiek: 33
Na forum: 4535 dni
Posty: 2758
Nick w MP: Shuffle

Piwa: 8578

Respekt: 535,3
Respekt: 535,3

Jaki? b??d w debugu?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-06-04, 18:41


Rumper

Majster od pysa






Wiek: 15
Na forum: 3456 dni
Posty: 231
Nick w MP: Rumper

Piwa: 592

Respekt: 180
Respekt: 180Respekt: 180

Ostrzeżeń: 20%
Brak

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-06-06, 15:13


MeeShuffle

Programista/Grafik






Wiek: 33
Na forum: 4535 dni
Posty: 2758
Nick w MP: Shuffle

Piwa: 8578

Respekt: 535,3
Respekt: 535,3

Prze?lij mi na screenie wygl?d tego okna. Spr?buje ci to zrobi? podobnie do twojego z tym skalowaniem

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-06-06, 16:58


boszboszek

HEY






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

Piwa: 2176

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

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.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-06-07, 16:33


MeeShuffle

Programista/Grafik






Wiek: 33
Na forum: 4535 dni
Posty: 2758
Nick w MP: Shuffle

Piwa: 8578

Respekt: 535,3
Respekt: 535,3

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

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-06-08, 19:44


Rumper

Majster od pysa






Wiek: 15
Na forum: 3456 dni
Posty: 231
Nick w MP: Rumper

Piwa: 592

Respekt: 180
Respekt: 180Respekt: 180

Ostrzeżeń: 20%
Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-06-10, 19:58


marcin778

Krytyk serwerów MTA






Wiek: 24
Na forum: 4290 dni
Posty: 2268
Nick w MP: Marcineg

Piwa: 4661

Respekt: 1436,8
Respekt: 1436,8

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 :eye: 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.

Postaw piwo autorowi tego posta
 

 
Tagi: skalowanie
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






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