cocos2dx tiledmap 碰撞检测
2014-10-07 17:03
375 查看
bool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } CCSize winSize = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); map=CCTMXTiledMap::create("1.tmx"); addChild(map); CCTMXObjectGroup* objgroup=map->objectGroupNamed("objLayer"); CCDictionary* dic=objgroup->objectNamed("hero"); float x=dic->valueForKey("x")->floatValue(); float y=dic->valueForKey("y")->floatValue(); float id=dic->valueForKey("id")->floatValue(); const char* idstr=dic->valueForKey("id")->getCString(); CCLOG("%f %f %f",x,y,id); CCLOG(idstr); hero=CCSprite::create("hero.png"); hero->setPosition(ccp(x,y)); addChild(hero); CCMoveBy *move=CCMoveBy::create(2,ccp(winSize.width/2,-winSize.height/2)); hero->runAction(move); schedule(schedule_selector(HelloWorld::judeCollion)); return true; } void HelloWorld::judeCollion(float dt) { if(hero!=NULL) { CCTMXLayer* collionLayer=map->layerNamed("collionLayer"); CCPoint tilePos=positionToTid(hero->getPosition()); if(collionLayer->tileGIDAt(tilePos)) { CCLOG("collion"); collionLayer->removeTileAt(tilePos); } } } CCPoint HelloWorld::positionToTid(CCPoint position) { int x = position.x /map->getTileSize().width; int y = (map->getMapSize().height*map->getTileSize().height - position.y) /map->getTileSize().height; return ccp(x, y); }
相关文章推荐
- cocos2dx基础篇(27)——简单碰撞检测
- Cocos2dx物理引擎碰撞检测总结
- cocos2dx 3.x 物理引擎接触检测掩码、碰撞掩码和类别掩码问题解析
- cocos2dx 精灵的碰撞检测和消灭(3)
- Cocos2dx 像素碰撞检测
- cocos2dx 精灵的碰撞检测和消灭
- cocos2dx碰撞检测算法
- cocos2dx物理引擎和碰撞检测(八)接触(Contants)
- cocos2dx粒子碰撞检测
- 【COCOS2DX-游戏开发之三六】圆与未旋转矩形的碰撞检测(上篇)
- cocos2dx物理引擎和碰撞检测(四)形状Shapes
- cocos2dx物理引擎和碰撞检测(五)框架Fixtures
- 基于像素的碰撞检测(移植到cocos2dx 3.x)
- 【COCOS2DX-游戏开发之三七】圆与旋转矩形的碰撞检测(下篇)
- cocos2dx 3.x(精灵的碰撞检测,点击移动与拖动精灵)
- Cocos2dx利用intersectsRect函数检测碰撞
- cocos2dx物理引擎和碰撞检测(六)物体Bodies
- cocos2dx - JS - 碰撞检测
- Cocos2dx 3.1.1 之 监听器、特效切换场景、动作、检测碰撞、回调函数
- cocos2dx3.x物理引擎的碰撞检测