Tilemap的碰撞检测
到目前需要检测两个部分,一是地图的边界,二是地图中的墙壁。
我的Tilemap分为两个图层,第一层为地板,第二层为墙,cocos2d-x提供了函数检测目标位置是否为墙。
首先将英雄坐标转化为Tilemap坐标
CCPoint HelloWorld::positionToTileCoord(cocos2d::CCPoint cocosCoord )
{
int x=cocosCoord.x / map->getTileSize().width;
int y=(((map->getMapSize().height-1)*map->getTileSize().height )-cocosCoord.y) / map->getTileSize().height;
return ccp(x,y);
}
添加地图状态
typedef enum{
Moveble=0,
Wall=1,
Enemy=2
}CollisionType;
添加碰撞检测函数
HelloWorld::CollisionType HelloWorld::checkCollision(CCP