I solved this in our RTS game as follow:
Main background is 1280 x 800
gMinimap is 160 x 100, and its backgroundimage is the same as the main BG (resized with a single image editor)
bPosition (in gMinimap) is 2 x 2 and you can update its position with Game.GetViewPort.
For example, if cEgo is actually at position 200,200 in the screen,
WhereX = cEgo.X;
WhereY = cEgo.Y;
WhereX = WhereX + GetViewPortX();
WhereY = WhereY + GetViewPortY();
WhereX = WhereX / 8;
WhereY = WhereY / 8;
bPosition.SetPosition (WhereX, WhereY);
You can update 30 different things (limit controls per GUI) by this way.
You can also set gMinimap.Transparency = 50 if you want a more professional result and even set to change the ViewPort according to a click over the GUI.
Hope this helps.
Jp
Main background is 1280 x 800
gMinimap is 160 x 100, and its backgroundimage is the same as the main BG (resized with a single image editor)
bPosition (in gMinimap) is 2 x 2 and you can update its position with Game.GetViewPort.
For example, if cEgo is actually at position 200,200 in the screen,
WhereX = cEgo.X;
WhereY = cEgo.Y;
WhereX = WhereX + GetViewPortX();
WhereY = WhereY + GetViewPortY();
WhereX = WhereX / 8;
WhereY = WhereY / 8;
bPosition.SetPosition (WhereX, WhereY);
You can update 30 different things (limit controls per GUI) by this way.
You can also set gMinimap.Transparency = 50 if you want a more professional result and even set to change the ViewPort according to a click over the GUI.
Hope this helps.
Jp