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

Wysłany: 2020-11-11, 21:31


xyzzzikk

.gg






Wiek: 18
Na forum: 2774 dni
Posty: 175
Nick w MP: aspyk

Piwa: 6499

Respekt: 30,5

Mam problem z tym problem

Poprostu mo?e mi kto? wyt?umaczy? ? Widzia?em na Gtao ju? tematy z tym ale dalej nic nie rozumiem

Np. Gdy klikniemy f1 z lewej strony wy?wietla si? przycisk kt?ry wychodzi jak notyfikacje

Wyt?umaczy? podstawy typu jak uzupe?ni? interpolateBetween()
Jak doda? animacje do dxDraw?

Z Wikipedii mta te? nie du?o rozumiem
https://wiki.multitheftauto.com/wiki/InterpolateBetween





Jak rozumiem to nadaje animacje?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-11-11, 21:55


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Najpro?ciej u?y? funkcji, kt?ra zwraca Ci warto?? animowan? (czyli np. pozycj? X)

Więcej informacji znajdziesz w Wikipedii MTA:

animate


Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-11-11, 22:06


Dawcio77







Wiek: 22
Na forum: 3312 dni
Posty: 89
Nick w MP: cx_u

Piwa: 136

Respekt: 35,8

1,2,3 argument - Pocz?tek przej?cia
4,5,6 argument - koniec przej?cia
7 argument - Liczenie dla stanu przej?cia (0 - pocz?tek przej?cia, 1 - koniec przej?cia)
8 argument - typ przej?cia (https://wiki.multitheftauto.com/wiki/Easing)

Dla przyk?adu:
Zmiana pozycji obrazku w czasie 5 sekund na przyk?adzie getTickCount(), spos?b przej?cia liniowy



pX 50 -- Pocz?tkowa pozycja obrazka w osi X
pY 50 -- Pocz?tkowa pozycja obrazka w osi Y
kX 100 -- Ko?cowa pozycja obrazka w osi X
kY 100 -- Ko?cowa pozycja obrazka w osi Y
-- Pod?oga dla argumentu kt?rego nie wykorzystamy


-- Przy wywo?ywaniu funkcji ustalamy zmienn?, kt?ra zawiera informacje na temat ticku podczas wywo?ania funkcji:
czasStartu getTickCount()

-- Przy dzia?aniu funkcji na podstawie onClientRender przy ka?dej klatce wczytuje sinowy tick
local teraz getTickCount()
-- Odliczamy czas startu od aktualnego ticku
local odliczonyCzas teraz czasStartu
-- Ustalamyjak d?ugo nasza animacja ma trwapo czym odejmujemy czas startu Tworzy nam to zmienn?, dzi?ki kt?rej mo?emy obliczypost?p animacji
local czasAnimacji 5000 czasStartu
-- Na koniec obliczamy post?p animacji przy u?yciu powy?szych dw?ch zmiennych
local postep odliczonyCzas/czasAnimacji
-- Zmienna postep b?dzie sie porusza?a pomi?dzy 0 a 1zale?nie od tego jak b?dzie wygl?da?a manipulacja zmiennczasStartu
-- Teraz mo?emy wykorzystawszystkie nasze obliczenia:
xyinterpolateBeetwen(pXpY_kXkY_,postep,"Linear")
-- Dostali?my juzmiennedzi?ki kt?rym mo?emy ustawinasz obrazek:
dxDrawImage(x,y,szerokoscObrazka,wysokoscObrazka,"obrazek.png")





Stara?em wyt?umaczy? si? to w najlepszy spos?b jaki potrafi?, powodzenia :)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-11-12, 15:31


xyzzzikk

.gg






Wiek: 18
Na forum: 2774 dni
Posty: 175
Nick w MP: aspyk

Piwa: 6499

Respekt: 30,5

"Dawcio77" napisał/a:

1,2,3 argument - Pocz?tek przej?cia
4,5,6 argument - koniec przej?cia
7 argument - Liczenie dla stanu przej?cia (0 - pocz?tek przej?cia, 1 - koniec przej?cia)
8 argument - typ przej?cia (https://wiki.multitheftauto.com/wiki/Easing)

Dla przyk?adu:
Zmiana pozycji obrazku w czasie 5 sekund na przyk?adzie getTickCount(), spos?b przej?cia liniowy



pX 50 -- Pocz?tkowa pozycja obrazka w osi X
pY 50 -- Pocz?tkowa pozycja obrazka w osi Y
kX 100 -- Ko?cowa pozycja obrazka w osi X
kY 100 -- Ko?cowa pozycja obrazka w osi Y
-- Pod?oga dla argumentu kt?rego nie wykorzystamy


-- Przy wywo?ywaniu funkcji ustalamy zmienn?, kt?ra zawiera informacje na temat ticku podczas wywo?ania funkcji:
czasStartu getTickCount()

-- Przy dzia?aniu funkcji na podstawie onClientRender przy ka?dej klatce wczytuje sinowy tick
local teraz getTickCount()
-- Odliczamy czas startu od aktualnego ticku
local odliczonyCzas teraz czasStartu
-- Ustalamyjak d?ugo nasza animacja ma trwapo czym odejmujemy czas startu Tworzy nam to zmienn?, dzi?ki kt?rej mo?emy obliczypost?p animacji
local czasAnimacji 5000 czasStartu
-- Na koniec obliczamy post?p animacji przy u?yciu powy?szych dw?ch zmiennych
local postep odliczonyCzas/czasAnimacji
-- Zmienna postep b?dzie sie porusza?a pomi?dzy 0 a 1zale?nie od tego jak b?dzie wygl?da?a manipulacja zmiennczasStartu
-- Teraz mo?emy wykorzystawszystkie nasze obliczenia:
xyinterpolateBeetwen(pXpY_kXkY_,postep,"Linear")
-- Dostali?my juzmiennedzi?ki kt?rym mo?emy ustawinasz obrazek:
dxDrawImage(x,y,szerokoscObrazka,wysokoscObrazka,"obrazek.png")





Stara?em wyt?umaczy? si? to w najlepszy spos?b jaki potrafi?, powodzenia :)



B??d w argumencie 3 i 6, po naprawie:


    pX 560 -- Pocz?tkowa pozycja obrazka w osi X
pY 615
pZ 0  -- Pocz?tkowa pozycja obrazka w osi Y
kX 56 -- Ko?cowa pozycja obrazka w osi X
kY 615
kZ -- Ko?cowa pozycja obrazka w osi Y


czasStartu getTickCount()

local teraz getTickCount()
local odliczonyCzas teraz czasStartu
local czasAnimacji 5000 czasStartu
local postep odliczonyCzas/czasAnimacji
xyinterpolateBetween(pXpY0kXkY0,postep,"Linear")
dxDrawImage(kXkY600600"logo.png"AristatesYuvarlak00tocolor(255255255255), false)


Lecz dalej nie dziala.

[ Dodano: 2020-11-12, 15:32 ]
"Wilq" napisał/a:

Najpro?ciej u?y? funkcji, kt?ra zwraca Ci warto?? animowan? (czyli np. pozycj? X)

Więcej informacji znajdziesz w Wikipedii MTA:

animate


jaki? przyk?ad u?ycia?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-11-12, 15:41


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Przyk?ad:
przesuwanie elementu GUI
local sxsy guiGetScreenSize( )
local window guiCreateWindow((sx-300)/2, (sy-400)/2300400"Test"false)
guiSetVisible(windowfalse)
bindKey("f2""down", function( )
    if anim then return end
    local v guiGetVisible(window)
    if not v then 
        guiSetVisible(windowtrue)
        animate(0111000, function(alpha)
            guiSetAlpha(window,alpha)
        end)
    end
    anim true
    animate(and 400 or 0and or 40021250, function(height)
        if and height == 0 then 
            guiSetVisible(windowfalse)
            anim false
        elseif not v and height == 400 then
            anim false
        end
        local wguiGetSize(windowfalse)
        guiSetSize(windowwheightfalse)
    end)
end)


Postaw piwo autorowi tego posta
 

 
Tagi: interpolatebetween
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