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

本文介绍如何使用Cocos2d-x加载Tiled地图,并通过对象层设置玩家出生点。首先创建并加载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);


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值