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); }
时间: 2024-12-24 04:40:15