⽅法:
添加⼀个普通的层(该层主要⽤来检测碰撞)floor,设置图块的属性(在需要让精灵不穿过的地⽅添加上该图块),属性的键Collision 值true。 ⽤来将x,y坐标转换为地图⽹格坐标
tileCoordForPosition(CCPoint position)
{
38gggint x=position.x/m_tileMap->getTileSize().width;
int y=(m_tileMap->getMapSize().height*m_tileMap->getTileSize().height-position.y)/m_tileMap->getTileSize().height;
return ccp(x,y);
}
在设置精灵位置前进⾏判断
setSpritePosition(CCPoint pos)
{
CCTMXLayer * floor=m_tileMap->layerNamed("floor");//获得碰撞图层
CCPoint tileCoord=this->tileCoordForPosition(pos);
int tileGid=floor->tileGIDAt(tileCoord);
if(tileGid!=0)
{
CCDictionary * properties =m_tileMap->propertiesForGID(tileGid);
if(properties!=NULL)
抛光毛刷{
CCString collision="";
CCString temp;
if(properties->valueForKey("Collision")->length()>0)
{
collision=properties->valueForKey("Collision")->getCString();
}
if(collision.length()>0&&collision.m_sString=="true")
{
return;
}
}皮带架
打孔文件夹
}
声阻抗率sprite->setPosition(pos);
手压式旋转拖把}