Gracias por responder Neftali
te cuento, el bucle de dibujado de rectangulos/hexagonos es asi
Código:
#define ICON_WIDTH 76
#define ICON_HEIGHT 76
for (int y = 0; y < 17; ++y)
{
for (int x = 0; x < 12; ++x)
{
TPoint pos = PosPt(x, y);
celda[x][y].rect = TRect(pos.x, pos.y, pos.x + ICON_WIDTH, pos.y + ICON_HEIGHT);
if(color == 1) TABLERO->Canvas->Draw(pos.x, pos.y, hexbitmap1->Picture->Graphic);
else if(color == 2) TABLERO->Canvas->Draw(pos.x, pos.y, Image20->Picture->Graphic);
if(y%2 == 0) TABLERO->Canvas->Draw(pos.x, pos.y, small_hex_orange->Picture->Graphic);
}
}
los if son simplemente un control para pintar diferentes graficos de hexagonos dependiendo del valor "color" que le pases a la funcion de pintado
y "celda" esta definido asi, aunque tiene otras variables que aun no uso la que nos compete es "TRect rect" que como es obvio, almacena las coordenadas del hexagono/rectangulo para luego hacer la comprobacion de PtInRect()
Código:
struct uni {
struct {
TRect rect;
bool flag;
int icon;
int owner;
int energy_level;
int faction;
struct conv convoy[8];
} celda[12][17];
} UNIVERSE[MAX_UNIVERSE];