Hola amigos, a ver si alguien pudiese darme alguna indicacion de porque esto falla
tengo una rutina que dibuja en pantalla un tablero de hexagonos pero en modo 2D, esto es dibujando alternado en 2 bucles for las casillas hexagonales pero en realidad es como si dibujase en una rejilla 2D en horizontal y vertical
la cuestion, es que estoy tratando de que cuando cliqueo en una de las casillas, resaltarla y eso (en plan como que esta seleccionada)
y el codigo en el OnMouseDown lo tengo asi
Código:
// Busca celda
bool found = false;
int col, row;
for (int y = 0; y < 17; y++)
{
for (int x = 0; x < 12; x++)
{
TPoint pos = PosPt(x, y);
if (PtInRect(celda[x][y].rect, Point(X, Y)))
{
found = true;
col = x;
row = y;
CELDA_SELECTED.x = x;
CELDA_SELECTED.y = y;
Caption = found ? String().sprintf(L"%d, %d", col, row) : String("<no>");
break;
}
}
}
la cuestion, es que las 2 primeras filas de arriba, las que corresponderian a coordenadas 1,1 - 2,1 , 3,1 etc es como si no las detectase, pero en el resto del tablero si las detecta...... alguien sabe porque pasa esto??? sin embargo la 0,0 si la detecta
la funcion PosPt es esta
Código:
//---------------------------------------------------------------------------
inline TPoint PosPt(int x, int y)
{
/* --> */ const int sx = 60, sy = 34; //separación
return Point((y&1)*sx + x*sx*2, y*sy);
}
//---------------------------------------------------------------------------
añado una captura para que veais a que me estoy refiriendo del tablero de hexagonos
