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

Wysłany: 2020-12-24, 19:20


xyzzz^

A nic






Wiek: 19
Na forum: 2134 dni
Posty: 319
Nick w MP: Aspyk21

Piwa: 310

Respekt: 81

Ostrzeżeń: 100%
Cze??,
I? zacze?em tworzy? logowanie napotka?em problem z isMouseIn i interpolateBetween.

Mianowicie, u?yje na przyk?ad

tick = getTickCount()

function drawStart()
local interpolation = interpolateBetween(-400,0,0,0,0,0,(getTickCount()-tick)/3000,'OutQuad')

 dxDrawImage(x + interpolation , y, w, h, photo)
end

function images()
if isMouseIn(x, y, w, h) then
 dxDrawImage(x , y, w, h, photo)
end
end


^^ przyk?ad

i problem z tym, ?e nawet animacja nie dochodzi a funkcja isMouseIn pokazuje zdj?cie wyrenderowane czyli:

Logowanie pojawia si?,
animacja przycisku leci, a isMouseIn ju? pokazuje inny przycisk
wi?c chodzi mi o to, ?e funkcja isMouseIn dzia?a?a jak funkcja drawStart dojdzie do ko?ca ( animacja dojdzie na swoj? pozycje, i wtedy dopiero isMouseIn b?dzie dzia?a?

Podpis

Znajdź mnie na:
Steamie
GitHubie

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-12-25, 21:15


EnoNeK







Wiek: 21
Na forum: 3428 dni
Posty: 39
Nick w MP: EnoNeK

Piwa: 54

Respekt: 200
Respekt: 200Respekt: 200

Mo?na to rozwi?za? oto tym sposobem
tick = getTickCount()

local posx = -400

function drawStart()
local interpolation = interpolateBetween(posx,0,0,0,0,0,(getTickCount()-tick)/3000,'OutQuad')

 dxDrawImage(x + interpolation , y, w, h, photo)
end

function images()
if isMouseIn(x, y, w, h) and posx == 0 then
 dxDrawImage(x , y, w, h, photo)
end
end


Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-12-25, 23:12


_jvneczek







Wiek: 22
Na forum: 4467 dni
Posty: 1509
Nick w MP: _jvneczek

Piwa: 3960

Respekt: 337,5
Respekt: 337,5Respekt: 337,5Respekt: 337,5

to zr?b ?e nadaje np animation = true i sprawdzanie, je?li animation == false then i wtedy dziala isMouseIn.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-12-26, 10:50


xyzzz^

A nic






Wiek: 19
Na forum: 2134 dni
Posty: 319
Nick w MP: Aspyk21

Piwa: 310

Respekt: 81

Ostrzeżeń: 100%
"satan_" napisał/a:

to zr?b ?e nadaje np animation = true i sprawdzanie, je?li animation == false then i wtedy dziala isMouseIn.

pokaza?by? to na przyk?adzie kilkulinijkowego kodu?

Podpis

Znajdź mnie na:
Steamie
GitHubie

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-12-26, 10:53


_jvneczek







Wiek: 22
Na forum: 4467 dni
Posty: 1509
Nick w MP: _jvneczek

Piwa: 3960

Respekt: 337,5
Respekt: 337,5Respekt: 337,5Respekt: 337,5


tick = getTickCount()

function drawStart()
    animation = true
    local interpolation = interpolateBetween(-400,0,0,0,0,0,(getTickCount()-tick)/3000,'OutQuad')

    dxDrawImage(x + interpolation , y, w, h, photo)
    setTimer(function()
        animation = false
    end, 3000, 1)
end

function images()
    if animation then return end
if isMouseIn(x, y, w, h) then
 dxDrawImage(x , y, w, h, photo)
end
end

Masz przyk?ad, tylko ustaw sobie czas timer'a

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-12-26, 16:08


EnoNeK







Wiek: 21
Na forum: 3428 dni
Posty: 39
Nick w MP: EnoNeK

Piwa: 54

Respekt: 200
Respekt: 200Respekt: 200

"satan_" napisał/a:


tick = getTickCount()

function drawStart()
    animation = true
    local interpolation = interpolateBetween(-400,0,0,0,0,0,(getTickCount()-tick)/3000,'OutQuad')

    dxDrawImage(x + interpolation , y, w, h, photo)
    setTimer(function()
        animation = false
    end, 3000, 1)
end

function images()
    if animation then return end
if isMouseIn(x, y, w, h) then
 dxDrawImage(x , y, w, h, photo)
end
end

Masz przyk?ad, tylko ustaw sobie czas timer'a


Po co kombinowa? w dodatku i tak by to nie dzia?a?o jakby mia? funkcje drawStart w onClientRender

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-12-26, 16:41


_jvneczek







Wiek: 22
Na forum: 4467 dni
Posty: 1509
Nick w MP: _jvneczek

Piwa: 3960

Respekt: 337,5
Respekt: 337,5Respekt: 337,5Respekt: 337,5

"EnoXo132" napisał/a:

"satan_" napisał/a:


tick = getTickCount()

function drawStart()
    animation = true
    local interpolation = interpolateBetween(-400,0,0,0,0,0,(getTickCount()-tick)/3000,'OutQuad')

    dxDrawImage(x + interpolation , y, w, h, photo)
    setTimer(function()
        animation = false
    end, 3000, 1)
end

function images()
    if animation then return end
if isMouseIn(x, y, w, h) then
 dxDrawImage(x , y, w, h, photo)
end
end

Masz przyk?ad, tylko ustaw sobie czas timer'a


Po co kombinowa? w dodatku i tak by to nie dzia?a?o jakby mia? funkcje drawStart w onClientRender


Nie wypowiadaj si? jak nie podo?asz postowi, po co?


local sx, sy  = guiGetScreenSize()
local tick = getTickCount()

isMouseIn = function(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

function drawStart()
        local interpolation = interpolateBetween(-400,0,0,0,0,0,(getTickCount()-tick)/3000,'OutQuad')
        dxDrawRectangle(554, 189 + interpolation, 275, 80, tocolor(255, 255, 255, 255), false)
    setTimer(function()
        animation = false
    end, 3000, 1)
    if not animation then
        if isMouseIn(554, 189, 275, 80) then
            dxDrawRectangle(554, 189 + interpolation, 275, 80, tocolor(0, 0, 0, 255), false)
        end
    end
end

function start()
    addEventHandler('onClientRender', root, drawStart)
    animation = true
    tick = getTickCount()
end
addEventHandler('onClientResourceStart', resourceRoot, start)

Prosty przyk?ad zrobi?em z dxDrawRectangle, dop?ki animacja nie doleci, nie pojawi si?, gdy doleci - dopiero wtedy dzia?a if isMouseIn.
Je?li chcesz na przyk?ad by wykonywa?o to gdy wejdziesz w marker, to przy wchodzeniu dajesz
    addEventHandler('onClientRender', root, drawStart)
    animation = true
    tick = getTickCount()

Mo?na to zrobi? du?o lepiej, zastosowa? warunek ale tylko nakierowa?em.

Podpis

Support Team: 04.10.2020 - 01.09.2020
Test Moderator: 03.05.2021 - 01.09.2021
Moderator: 01.09.2021 - 23.10.2021

Postaw piwo autorowi tego posta
 

 
Tagi: ismousein :: interpolacja
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






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