Jump to content

dx calculations


Wei

Recommended Posts

Posted
  
example = { 
{"test1"}; 
{"test2"}; 
} 
  
function draw() 
    for index, value in ipairs (example) do 
        dxDrawRectangle( pos1, pos2, 100, 50 ) 
    end 
end 
addEventHandler("onClientRender", root, draw) 

Can someone explain me how I can get pos1 and pos2 to allways be in middle of screen ?

I loosing my mind with this calculations -.-

Thanks,

Wei.

Diet with russian vodka, lose 3 days in one week !

Posted
local sx, sy = guiGetScreenSize ( ) 
local example = 
    { 
        { "test1" }, 
        { "test2" } 
    } 
  
function draw ( ) 
    local width, height = 100, 50 
    local x, y = ( sx / 2 - width / 2 ), ( sy / 2 - height / 2 ) 
    for _, value in ipairs ( example ) do 
        dxDrawRectangle ( x, y, width, height ) 
    end 
end 
addEventHandler ( "onClientRender", root, draw ) 

San Andreas Utopia RPG (SAUR) Owner & Developer.

560x95_FFFFFF_FF9900_000000_000000.png

Education is the most powerful weapon which you can use to change the world.

Posted

I'm sorry I forgot to mention to test1 and test2 would be seperated by 10px.

Diet with russian vodka, lose 3 days in one week !

Posted

You mean the "y" separated by 10px?

San Andreas Utopia RPG (SAUR) Owner & Developer.

560x95_FFFFFF_FF9900_000000_000000.png

Education is the most powerful weapon which you can use to change the world.

Posted

yes but it would be still in middle of screen

Edit*

I mean like there would be 2 seperated rectangles that will together be in middle of screen

Diet with russian vodka, lose 3 days in one week !

Posted
local sx, sy = guiGetScreenSize ( ) 
local example = 
    { 
        { "test1" }, 
        { "test2" } 
    } 
  
function draw ( ) 
    local width, height = 100, 50 
    local x, y = ( sx / 2 - width / 2 ), ( sy / 2 - height / 2 ) 
    for _, value in ipairs ( example ) do 
        dxDrawRectangle ( x, y, width, height ) 
        y = ( y + 10 ) 
    end 
end 
addEventHandler ( "onClientRender", root, draw ) 

San Andreas Utopia RPG (SAUR) Owner & Developer.

560x95_FFFFFF_FF9900_000000_000000.png

Education is the most powerful weapon which you can use to change the world.

  • MTA Team
Posted

Wouldn't That make the Y pos +10 on every frame?

EDIT: My Bad xD:lol:

DevOps Engineer, Cloud Advocate & Security Engineer(Red Team) | Coffee, Containers & Burp

 
  • Moderators
Posted (edited)

Hummm okay, I'm a bit late again xD but the code of Solidsnake doesn't center all rectangle as a whole. So if you add 5 rectangles in your table, then the 1st one will still be rendered from the middle and the last rectangles will probably rendered out of the screen.

Here is my version with a screenshot with explainations:

local sx, sy = guiGetScreenSize ( ) 
local example = 
    { 
        { "test1" }, 
        { "test2" } 
    } 
  
function draw ( ) 
    local width, height = 100, 50 
    local offsetY = 10 -- seperation between each rectangles 
    local totalHeight = (50+offsetY)*(#example)-offsetY --(-offsetY to remove seperation of the last rectangle) 
    local x = ( sx/2 - width/2 ) 
    for k, value in ipairs ( example ) do 
        local y = (sy/2 - totalHeight/2) + (height+offsetY) * (k-1) 
        dxDrawRectangle ( x, y, width, height ) 
    end 
end 
addEventHandler ( "onClientRender", root, draw ) 

The result with extra explainations:

ftr0.png

EDIT: Alright ! seems that the image can't be displayed from gyazo, is there a whitelist on that forum ? I'm gonna upload it somewhere else.

EDIT2: Changed img tag

Edited by Guest

The rEvolution is coming ...

Posted
No problem, still don't know what you really wanted though :)

I am making login gui like some multigamemode servers use to select gamemode I will use Login, Register and Forgot password...

Diet with russian vodka, lose 3 days in one week !

  • Moderators
Posted

Yeah okay, so you wanted to center all rectangles to the middle as a whole (like if it was 1 block) like I did ?

The rEvolution is coming ...

Posted
Yeah okay, so you wanted to center all rectangles to the middle as a whole (like if it was 1 block) like I did ?

exactly

Diet with russian vodka, lose 3 days in one week !

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