Jump to content

[HELP] Animation.


AlvarO

Recommended Posts

Hey guys, im triying to make something like, a window (dx) that when the resource starts makes an animation from up to down, and when a player click in a button inside of it, it will animate to down, there is my code:

  
local x, y = guiGetScreenSize() 
local px, py = 1920, 1080 
local sx, sy = (x/py), (y/py) 
local start = getTickCount() 
local font = dxCreateFont("font.ttf", 52, false) 
  
  
function drawingLogin() 
    local now = getTickCount() 
    local elapsedTime = now - start 
    local endTime = start + 1000 
    local duration = endTime - start 
    local progress = elapsedTime / duration 
    local x1, y1 = interpolateBetween(x/2-200, y/7, 0, x/2-200, y/3.5, 0, progress, "OutBounce") 
    local x2, y2 = interpolateBetween(x/2+93, y/2-65, 0, x/2+93, y/2-33, 0, progress, "OutBounce") 
     
    dxDrawImage(0, 0, x, y, "img/background.png") 
    dxDrawRectangle(x1-450, y1+200, 400, 50, rectanglecchanger2) 
    dxDrawRectangle(x1+400, y1+200, 400, 50, tocolor(255, 255, 255, 75)) 
    dxDrawRectangle(x1, y1+200, 65, 50, tocolor(255, 255, 255, 75)) 
    dxDrawRectangle(x1+285, y1+200, 65, 50, tocolor(255, 255, 255, 75)) 
    dxDrawRectangle(x1, y1+275, 350, 50, rectanglecchanger1) 
    dxDrawImage(x2, y2, 50, 50, "img/login.png") 
    dxDrawImage(x2-285, y2, 50, 50, "img/register.png") 
    dxDrawText("SIGN IN", x1-310, y1-320, x, y, tocolor(255, 255, 255, 255), 0.4, font, "left", "center", false, false, false, true, true) 
    dxDrawText("ADD NEW ACCOUNT", x1+475, y1-320, x, y, tocolor(255, 255, 255, 255), 0.4, font, "left", "center", false, false, false, true, true) 
    dxDrawText("PLAY AS GUEST", x1+107, y1-175, x, y, tocolor(255, 255, 255, 255), 0.3, font, "left", "center", false, false, false, true, true) 
    showChat(false) 
    showCursor(true) 
end 
addEventHandler("onClientRender", root, drawingLogin) 
  
function playAsGuest (button, state, absoluteX, absoluteY, wx, wy, wz, clickedElement) 
    if state == "down" then 
        if isMouseInPosition (x/2-200, y/2+43, 350, 50) then 
            removeEventHandler("onClientRender", getRootElement(), drawingLogin) 
            showChat(true) 
            showCursor(false) 
        end 
    end 
end 
addEventHandler ("onClientClick", getRootElement(), playAsGuest) 
  
function changeToLogin (button, state, absoluteX, absoluteY, wx, wy, wz, clickedElement) 
    local now = getTickCount() 
    local elapsedTime = now - start 
    local endTime = start + 1000 
    local duration = endTime - start 
    local progress = elapsedTime / duration 
    local x1, y1 = interpolateBetween(x/2-200, y/7, 0, x/2-200, y/3.5, 0, progress, "OutBounce") 
    if state == "down" then 
        if isMouseInPosition (x/2-650, y/2-31, 400, 50) then 
            x1, y1 = interpolateBetween(x/2-200, y/3.5, 0, x/2-200, y/6, 0, progress, "OutBounce") 
        end 
    end 
end 
addEventHandler ("onClientClick", getRootElement(), changeToLogin) 
addEventHandler("onClientRender", root, drawingLogin) 
  
function cambiarColor1() 
    if isMouseInPosition(x/2-200, y/2+43, 350, 50) then 
        rectanglecchanger1 = tocolor(255, 255, 255, 50) 
    else 
        rectanglecchanger1 = tocolor(255, 255, 255, 125) 
    end 
end 
addEventHandler("onClientRender", root, cambiarColor1) 
  
function cambiarColor2() 
    if isMouseInPosition(x/2-650, y/2-31, 400, 50) then 
        rectanglecchanger2 = tocolor(255, 255, 255, 50) 
    else 
        rectanglecchanger2 = tocolor(255, 255, 255, 125) 
    end 
end 
addEventHandler("onClientRender", root, cambiarColor2) 
  
function isMouseInPosition (x, y, width, height) 
    if (not isCursorShowing ()) then 
        return false 
    end 
    local sx, sy = guiGetScreenSize () 
    local cx, cy = getCursorPosition () 
    local cx, cy = (cx * sx), (cy*sy) 
    if (cx >= x and cx <= x + width) and (cy >= y and cy <= y + height) then 
        return true 
    else 
        return false 
    end 
end 
  

Link to comment
There's no error, as you can see I ask for help, for tell me how to make that when I click in the button "Sign In" all the dx elements move to down. Thanks.

You may use another painting or change the local interpolateBetween and put the entire file , and then you change the name of x1 , y1, z1 in case you want to get off panel

example :#

start = getTickCount() 
function loading () 
 local now = getTickCount() 
            with = interpolateBetween(0,0,0,532,0,0, (now - start) / (( start + 10000 ) - start ) , "Linear" ) 
         dxDrawRectangle(142, 222, 532, 41, tocolor(0, 0, 0, 255), false) 
        dxDrawRectangle(142, 222, with, 41, tocolor(55, 215, 0, 255), false) 
     end 
   end 
addEventHandler("onClientRender",root,lodaing) 
bindKey("c","down",function () 
local now = getTickCount() 
start = getTickCount() 
with = interpolateBetween(with,0,0,0,0,0, (now - start) / (( start + 3000 ) - start ) , "Linear" ) 
end) 
  

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...