Bug Маппер, квадратная сетка, неверные координаты [684]

Автор темы #1
Дата рег
4 Авг 2016
Сообщения
162
Симпатии
30
Неверно отображаются координаты сетки. В разных местах одного и того же тайла разные координаты.
GetMonitorHex(__MouseX, __MouseY, x, y) так же неверно определяет координаты.

Без-имени-1.png

Код:
void InitializeGeometry()
{
__MapHexagonal	 = false;	// TRUE - hexagonal, FALSE - square
__MapHexWidth	  = 36;	   // Hex/square width
__MapHexHeight	 = 18;	   // Hex/square height
__MapHexLineHeight = 9;		// Hex/square line height
__MapTileOffsX	 = 18;	   // Tile default offset X
__MapTileOffsY	 = 18;	   // Tile default offset Y
__MapTileStep	  = 1;		// Tile step
__MapRoofOffsX	 = 18;	   // Roof default offset X
__MapRoofOffsY	 = -72;	  // Roof default offset Y
__MapRoofSkipSize  = 2;		// Default length (in hexes/squares) of roof tiles
__MapCameraAngle   = 30.0f;	// Angle for 3d critters rendering
__MapSmoothPath	= false;	// Enable pathfinding path smoothing
__MapDataPrefix	= "art/geometry/tactics_"; // Path and prefix for names used for geometry sprites
}
 
Дата рег
2 Апр 2011
Сообщения
239
Симпатии
57
Включи гексовую сетку - координаты гекса пишутся, а не тайла.
Координаты тайла берутся от гекса в нижнем углу тайла, если правильно помню.
 
Автор темы #3
Дата рег
4 Авг 2016
Сообщения
162
Симпатии
30
Включи гексовую сетку - координаты гекса пишутся, а не тайла.
Координаты тайла берутся от гекса в нижнем углу тайла, если правильно помню.
Ясна-ясна :)
Выходит, это не баг, а фича?
 
Дата рег
2 Апр 2011
Сообщения
239
Симпатии
57
Баг будет, если будут неверные координаты гекса под курсором отображаться.
 
Автор темы #5
Дата рег
4 Авг 2016
Сообщения
162
Симпатии
30
Баг будет, если будут неверные координаты гекса под курсором отображаться.
При дефолтных __MapHexWidth и __MapHexHeight:
scr2.png

При экзотических:
scr1.png

Желтый ромбик просто выводится по:

Код:
			uint16 x = 0;
			uint16 y = 0;
			GetMonitorHex(__MouseX, __MouseY, x, y);
			int x_px=0;
			int y_px=0;
			GetHexPos(x, y, x_px, y_px);
			uint sprId=LoadSprite("Art/Mapper/test.png");
			DrawSprite(sprId, 0, x_px, y_px, int(36/__SpritesZoom), int(18/__SpritesZoom), true);