使用tmx地图

来源:互联网 发布:阿里云邮寄资料 编辑:程序博客网 时间:2024/06/06 11:39

制作tmx地图可以使用tiled工具。


//载入地图map = CCTMXTiledMap::create("Map.tmx");this->addChild(map);//this->setPaths(CCPointArray::create(10));paths = CCPointArray::create(20);//paths用于保存对象层所有的点paths->retain();//引用计数加一//获取对象层CCTMXObjectGroup * group = map->objectGroupNamed("Path");int i = 1;while(true){//获取对象层中的点CCString * objectName = CCString::createWithFormat("Point%d",i);CCDictionary * objectInfo = group->objectNamed(objectName->getCString());if (objectInfo == NULL) {break;}//获取点的属性CCPoint po = CCPoint(objectInfo->valueForKey("x")->floatValue(),objectInfo->valueForKey("y")->floatValue());paths->addControlPoint(po);<span style="white-space:pre">//添加对象层中的点i++;}


给精灵设置初始点
CCSprite * boss = CCSprite::create("Icon-Small.png");//将精灵的初始位置设置到在对象层获取到的点上(点是自己在tield工具上新建对象层设定的)boss->setPosition(paths->getControlPointAtIndex(0));//设置精灵在第一个点this->addChild(boss);CCCardinalSplineTo * move = CCCardinalSplineTo::create(5, paths, 1);//设置路径的动作boss->runAction(move);//执行动作


点击tmx地图上的点

CCTMXLayer * roleLayer = map1->layerNamed("Role");//注意这不是opengl坐标CCPoint ccpo = pTouch->getLocationInView()/32;//输出测试CCPoint c1 = pTouch->getLocation();CCPoint c2 = pTouch->getLocationInView();CCLog("%f, %f, %f, %f", c1.x, c1.y, c2.x, c2.y);ccpo = CCPoint((int)ccpo.x, (int)ccpo.y);//获取层中的精灵//CCSprite * title = roleLayer->tileAt(ccpo);//title->runAction(CCFadeOut::create(1));//点击的渐变消失//GID png中的第几个小图片,1开始if (roleLayer->tileGIDAt(ccpo) == 52)roleLayer->setTileGID(59, ccpo);//3,第几个小图片


0 0
原创粉丝点击