FastTMXLayer.cpp中有个tileToNodeTransform方法,在layer的初始化方面initWithTilesetInfo中会调用,我最近要研究tilemap做地图,但是我看不懂其含义,我想问的是:对于一个FAST_TMX_ORIENTATION_ISO方向的地图_tileToNodeTransform 这个mat4类型的矩阵各分量值表示什么含义,这个矩阵有什么作用?求大神指教!在此拜谢了!
Mat4 TMXLayer::tileToNodeTransform()
{
float w = mapTileSize.width / CCCONTENT_SCALE_FACTOR();
float h = mapTileSize.height / CCCONTENT_SCALE_FACTOR();
float offY = (_layerSize.height - 1) * h;
switch(_layerOrientation)
{
case FAST_TMX_ORIENTATION_ORTHO:
{
_tileToNodeTransform = Mat4
(
w, 0.0f, 0.0f, 0.0f,
0.0f, -h, 0.0f, offY,
0.0f, 0.0f, 1.0f, 0.0f,
0.0f, 0.0, 0.0f, 1.0f
);
return _tileToNodeTransform;
}
case FAST_TMX_ORIENTATION_ISO:
{
float offX = (_layerSize.width - 1) * w / 2;
_tileToNodeTransform = Mat4
(
w/2, -w/2, 0.0f, offX,
-h/2, -h/2, 0.0f, offY,
0.0f, 0.0f, 1.0f, 0.0f,
0.0f, 0.0f, 0.0f, 1.0f
);
return _tileToNodeTransform;
}
case FAST_TMX_ORIENTATION_HEX:
{
_tileToNodeTransform = Mat4
(
h * sqrtf(0.75), 0, 0, 0,
-h/2, -h, 0, offY,
0, 0, 1, 0,
0, 0, 0, 1
);
return _tileToNodeTransform;
}
default:
{
_tileToNodeTransform = Mat4::IDENTITY;
return _tileToNodeTransform;
}
}
}