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

Wysłany: 2019-08-07, 18:13


Kacperiusz

.






Wiek: 23
Na forum: 2770 dni
Posty: 113

Piwa: 205

Respekt: 50

Witam, mam problem. Chcia? bym zrobi? by po klikni?ciu w obrazek porusza? si? on za mysz?. Prosz? o pomoc, bo nie wiem jak to zrobi?.

Stawiam :piwo:

Mam Taki kod:

local px,py guiGetScreenSize()
local zoom 1
if px 1920 then 
    zoom math.min(21920/px)
end

showCursor(true)

function mysz xywidthheight )
    if ( not isCursorShowing( ) ) then
        return false
    end
    local sxsy guiGetScreenSize ( )
    local cxcy getCursorPosition ( )
    local cxcy = ( cx sx ), ( cy sy )
    if ( cx >= and cx <= width ) and ( cy >= and cy <= height then
        return true
    else
        return false
    end
end

img dxCreateTexture("ulgowy.png")

function gui()
    dxDrawImage(678/zoom542/zoom388/zoom516/zoomimg)
end
addEventHandler("onClientRender"rootgui)

function cos()
    if mysz(670/zoom542/zoom388/zoom516/zoomthen
        guiSetPosition(guicxcytrue)
    end 
end
addEventHandler("onClientClick"rootcos)


Przepraszam ?e nie doda?em tego wcze?niej. Kod zrobiony dla testu.


Uda?o si?, a czy m?g? by mi kto? powiedzie? jak zrobi? by obrazek szed? za kursorem bardziej "g?adko". Bo mam kod, obrazek idzie za kursorem ale nie jest tak jakby "przyczepiony" tylko teleportuje si? do miejsca w kt?rym klikn?.

Mam nadzieje ?e kto? zrozumie moje pytanie :mrgreen: !!

Podpis
pecik
Ostatnio zmieniony przez Kacperiusz 2019-08-08, 14:26, w całości zmieniany 5 razy  
Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-08-07, 20:16


marcin778

Krytyk serwerów MTA






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

Piwa: 4662

Respekt: 1436,8
Respekt: 1436,8


Więcej informacji znajdziesz w Wikipedii MTA:

getCursorPosition
i aktualizowanie pozycji obrazka, je?eli to CEGUI to
Więcej informacji znajdziesz w Wikipedii MTA:

guiSetPosition
i
Więcej informacji znajdziesz w Wikipedii MTA:

onClientCursorMove


Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
Kacperiusz
Wysłany: 2019-08-08, 13:04


Kacperiusz

.






Wiek: 23
Na forum: 2770 dni
Posty: 113

Piwa: 205

Respekt: 50

marcin778, Pr?bowa?em, ale nie uda?o mi si? zrobi?.

[ Dodano: 2019-08-08, 14:15 ]
Uda?o si?, a czy m?g? by mi kto? powiedzie? jak zrobi? by obrazek szed? za kursorem bardziej "g?adko". Bo mam kod, obrazek idzie za kursorem ale nie jest tak jakby "przyczepiony" tylko teleportuje si? do miejsca w kt?rym klikn?.

Mam nadzieje ?e kto? zrozumie moje pytanie :mrgreen: !!

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-08-08, 15:17


marcin778

Krytyk serwerów MTA






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

Piwa: 4662

Respekt: 1436,8
Respekt: 1436,8

Po to poda?em Ci
Więcej informacji znajdziesz w Wikipedii MTA:

onClientCursorMove
aby by?o "p?ynnie", a ty sobie zrobi?e? to na klikanie. Je?li to
Więcej informacji znajdziesz w Wikipedii MTA:

dxDrawImage
To w evencie od renderowania
Więcej informacji znajdziesz w Wikipedii MTA:

onClientRender
sobie zr?b warunek by sprawdzac czy obrazek jest "klikniety" i je?li tak to go rysujesz na pozycji kursora

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-08-08, 16:47


Kacperiusz

.






Wiek: 23
Na forum: 2770 dni
Posty: 113

Piwa: 205

Respekt: 50

Oke, a jak zrobi? by po klikni?ciu na obrazek dopiero zacz?? si? rusza??

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-08-08, 17:10


marcin778

Krytyk serwerów MTA






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

Piwa: 4662

Respekt: 1436,8
Respekt: 1436,8


Więcej informacji znajdziesz w Wikipedii MTA:

onClientClick


Więcej informacji znajdziesz w Wikipedii MTA:

isMouseInPosition

i teraz masz dwie mozliwosci, albo dodajesz event
Więcej informacji znajdziesz w Wikipedii MTA:

onClientCursorMove
na sta?e i wtedy sprawdzasz przez zmienn? czy kliknales na obrazek, wartosc zmiennej zmieniasz w onClientClick, albo dodajesz po kliknieciu
Więcej informacji znajdziesz w Wikipedii MTA:

addEventHandler
i usuwasz event po ponownym kliknieciu by 'puscic' obrazek
Więcej informacji znajdziesz w Wikipedii MTA:

removeEventHandler


Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-08-09, 17:13


Kacperiusz

.






Wiek: 23
Na forum: 2770 dni
Posty: 113

Piwa: 205

Respekt: 50

Zrobi?em, aleeeeeeeee xD, zn?w mam problem. Ot??, mam taki kod:

 local wguiGetScreenSize()
local x 1920
local zoom 1
local mZ 2
if w then
    zoom math.min(mZx/w)
end

showCursor(true)


x370/zoom436/zoom

local gitesik false 
local trzymam false

img dxCreateTexture("window.png")

function mysz xywidthheight )
    if ( not isCursorShowing( ) ) then
        return false
    end
     sxsy guiGetScreenSize ( )
     cxcy getCursorPosition ( )
     cxcy = ( cx sx ), ( cy sy )
    if ( cx >= and cx <= width ) and ( cy >= and cy <= height then
        return true
    else
        return false
    end
end

function gui(btnstate)
        if mysz(xy1920/zoom1080/zoom) and getKeyState("mouse1"then
        local sgetCursorPosition()
        x= (s*w-(370/zoom/2)), (y*h-(436/zoom/2))
        gitesik true
        trzymam true
        dxDrawImage(x+1y+1200+1/zoom200+1/zoomimg000tocolor(255255255255), false)
        dxDrawImage(xy200/zoom200/zoomimg000tocolor(255255255255), false)
    end 
end 
addEventHandler("onClientRender"rootgui)
 


Obrazek nie pojawia si?, dopiero gdy w niego klikn?, gui si? pojawia. ;(

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-08-09, 18:36


marcin778

Krytyk serwerów MTA






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

Piwa: 4662

Respekt: 1436,8
Respekt: 1436,8

Poniewa? masz warunek, na getKeyState i w tym warunku renderujesz obrazek. Renderuj obrazek ca?y czas, poza warunkiem. We warunku aktualizuj tylko jego pozycj? na pozycje kursora. Sprawdzanie pozycji kursora w renderze te? jest z?ym pomys?em bo to wszystko si? b?dzie bugowa?. Musisz u?y?
Więcej informacji znajdziesz w Wikipedii MTA:

onClientClick
i w nim sprawdza? czy klikni?to na obrazek, je?li tak to ustawiamy np. trzymam na true a w renderze sprawdzamy czy trzyma, je?li trzyma to aktualizujemy pozycje tego obrazka. W onClientClick je?li pu?ci przycisk myszki to trzymam na false

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-08-09, 19:03


Kacperiusz

.






Wiek: 23
Na forum: 2770 dni
Posty: 113

Piwa: 205

Respekt: 50

Inaczej, czym m?g? bym zast?pi? getKeyState? Bo nwm :(

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-08-10, 00:34


marcin778

Krytyk serwerów MTA






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

Piwa: 4662

Respekt: 1436,8
Respekt: 1436,8

Napisa?em ju? wy?ej, ja?niej nie ju? nie potrafi? tego wyt?umaczy?.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-08-10, 15:58


Kacperiusz

.






Wiek: 23
Na forum: 2770 dni
Posty: 113

Piwa: 205

Respekt: 50

 local wguiGetScreenSize()
local x 1920
local zoom 1
local mZ 2
if 200 then
    zoom math.min(mZx/200)
end

showCursor(true)

marker createMarker(444-2"cylinder"1255255255)


x200/zoom200/zoom

local gitesik false 
local trzymam false
local trzymam2 false

img dxCreateTexture("paczka.png")

function mysz xywidthheight )
    if ( not isCursorShowing( ) ) then
        return false
    end
     sxsy guiGetScreenSize ( )
     cxcy getCursorPosition ( )
     cxcy = ( cx sx ), ( cy sy )
    if ( cx >= and cx <= width ) and ( cy >= and cy <= height then
        return true
    else
        return false
    end
end

function gui()
    if mysz(xy1920/zoom1080/zoom) and getKeyState("mouse1") and trzymam ~= true then
    pxpy getCursorPosition()
    x= (px*w-(200/zoom/2)), (py*h-(200/zoom/2))
    trzymam true 
    else 
    if mysz(0/zoom0/zoom1920/zoom1080/zoom) and getKeyState("mouse1"then
    gitesik true
    else 
    gitesik false
    end
    trzymam false
    dxDrawImage(xy200/zoom200/zoomimg)
    end
end 
addEventHandler("onClientRender"rootgui)
 


Teraz gui si? pokazuje aleee jak klikam to miga. ;( ;( ;( ;( ;( ;( ;( ;( ;( ;( ;( ;( ;( ;( ;( ;(

Pr?bowa?em zrobi?
 onClientClick 
ale nie wysz?o.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-08-10, 19:35


marcin778

Krytyk serwerów MTA






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

Piwa: 4662

Respekt: 1436,8
Respekt: 1436,8

Czego nie rozumiesz w tym co napisa?em? Renderuj poza warunkami i musisz u?y? onClientClick. Aktualizujesz jedynie pozycje w renderze lub onClientCursorMove (do wyboru, jak wolisz) na pozycj? kursora

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