Jump to content

Radar


WhoAmI

Recommended Posts

Hi guys. I'm about to do a radar. I got a map 6000px x 6000px. How could I get the real position in pixels?

Well, I saw a fe topics and I got this code.

    local mapImgWidth, mapImgHeight = 6000, 6000 
    local ratioX, ratioY = --[[value here]], --[[value here]] 
    local x, y = getElementPosition ( localPlayer ) 
    local tempMapX, tempMapY = x * ratioX, y * ratioY --the position in pixels on your map file ( with the middle of this file as origin (0, 0) ) 
    local mapX, mapY = tempMapX + mapImgWidth / 2, tempMapY + mapImgHeight / 2  --the position in pixels on your map file ( with the upper left corner of this image as origin (0, 0) ) 
    --so now we have the real position in pixels, we draw the the map: 
    dxDrawImageSection ( radarX, radarY, radarWidth, radarHeight, mapX - mapWidth / 2, mapY - mapWidth / 2, mapX + mapWidth / 2, mapY + mapWidth / 2, "map.jpg" ) 

But I don't really now what is this ratioX, ratioY value and from what I could get mapWidth?

Link to comment

Well, I got this:

http://snag.gy/eNMle.jpg

Anyone can help me with this code, and let me try to understand it?

screenX, screenY = guiGetScreenSize ( ) 
radarWidth, radarHeight = 300, 200 
radarX, radarY = 50, screenY - ( radarHeight + 50 ) 
mapImgWidth, mapImgHeight = 6000, 6000 
mapWidth = 3000 
ratioX, ratioY = mapImgWidth / mapImgHeight, mapImgWidth / mapImgHeight 
  
showPlayerHudComponent ( "radar", false ) 
  
function drawRadar ( ) 
    local x, y = getElementPosition ( localPlayer ) 
    local tempMapX, tempMapY = x * ratioX, y * ratioY --the position in pixels on your map file ( with the middle of this file as origin (0, 0) ) 
    local mapX, mapY = tempMapX + mapImgWidth / 2, tempMapY + mapImgHeight / 2  --the position in pixels on your map file ( with the upper left corner of this image as origin (0, 0) ) 
    --so now we have the real position in pixels, we draw the the map: 
    dxDrawImageSection ( radarX, radarY, radarWidth, radarHeight, mapX - mapWidth / 2, mapY - mapWidth / 2, mapX + mapWidth / 2, mapY + mapWidth / 2, "map.jpg" ) 
end 
addEventHandler ( "onClientRender", root, drawRadar ) 

Link to comment

You need to draw a smaller image section. If your map is 6000 x 6000 then the player position can be an exact pixel.

local x, y, z = getElementPosition( getLocalPlayer( ) ) 
local sx, sy = guiGetScreenSize( ) 
local radarWidth = 250 
local radarHeight = 250 
  
dxDrawImageSection ( sx/2 - radarWidth/2, sy/2 - radarHeight/2, radarWidth, radarHeight, x - mapWidth / 2,y - mapWidth / 2, 250, 250, "map.jpg" ) 

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