使用Tiled地图及利用地图设置坐标

  使用Tiled软件将地图信息保存为XXX.tmx格式。
/*加载Tiled地图,添加到场景中*/
        CCTMXTiledMap* map = CCTMXTiledMap::create("level01.tmx");
        CCTMXLayer* groundLayer = map->layerNamed("ground");
        this->addChild(map);

固定主角出生点,使用Tiled软件的对象层。

CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
    
    /* 创建精灵 */
    CCSprite* playerSprite = CCSprite::create("player.png");

    /* 将精灵绑定到玩家对象上 */
    Player* mPlayer = Player::create();
    mPlayer->bindSprite(playerSprite);

    //CCTMXObjectGroup对象存放了对象层的所有对象,通过objectGroupNamed函数获取指定名称的对象层,于是就得到了某个对象层的所有对象,这些对象
    //用一个类似HashMap的容器存放。
    //map->objectGroupNamed("objects")取得了刚刚创建的objects对象层里面的所有对象.通过objectNamed函数来获得PlayerPoint对象,获得后返回的是一个
    //CCDictionary对象,从playerPointDic里取得PlayerPoint对象的X,Y坐标值,然后给玩家设置坐标
    /* 加载对象层 */
    CCTMXObjectGroup* objGroup = map->objectGroupNamed("objects");

    /* 加载玩家坐标对象 */
    CCDictionary* playerPointDic = objGroup->objectNamed("PlayerPoint");
    float playerX = playerPointDic->valueForKey("x")->floatValue();
    float playerY = playerPointDic->valueForKey("y")->floatValue();

    /* 设置玩家坐标 */
    mPlayer->setPosition(ccp(playerX, playerY));
    

    /* 将玩家添加到地图 */
    map->addChild(mPlayer);


你可能感兴趣的:(使用Tiled地图及利用地图设置坐标)