cocos2d-x使用tile map总结

  次阅读 来源:互联网(转载协议) 2015-09-28 15:12 我要评论(0)

cocos2d-x使用tile map总结

使用tile map来做游戏能大大提高开发效率的,最近新开发的游戏也使用tile map来开发。

根据自己的使用过tile map的经验和参考一些资料,总结一下用法包括:

1最基本的是做游戏地图,导入素材之后,用刷子刷出自己需要的地形图;创建地图和背景层的代码例子如下:

auto tileMap = TMXTiledMap::create(try1.tmx);

auto backgoround = tileMap->getLayer(background);

addChild(tileMap, 1);

2游戏人物和界面,可以直接在地图中描点定位,然后载入需要的Sprite或界面,如记分牌,按键等;当然其实更加方便的是使用cocos studio并和tile map结合起来;步骤:

1 菜单选择:图层->添加对象图层:

2. 然后就可以在选中对象层的情况下,画矩阵,这个矩阵在游戏画面中是不显示的,不过可以帮助我们定位

3. 然后在游戏中使用代码定位这个矩阵,并在这个矩阵为止放置需要的对象

对应的代码例子如下:

cocos2d::TMXObjectGroup *playerObjGroup = tileMap->getObjectGroup(player_object_group);

auto playerPos = playerObjGroup->getObject(player_position_1);

float x = playerPos[x].asFloat();

float y = playerPos[y].asFloat();

player = Sprite::create(029.png);

player->setPosition(x, y);

addChild(player, 1);

3. 和一些游戏碰撞,游戏事件等设置,如下碰撞代码

int tileGid = block->getTileGIDAt(tileCoord);

if (tileGid) {

auto properties = tileMap->getPropertiesForGID(tileGid).asValueMap();

if (!properties.empty()) {

auto collision = properties[blockage].asString();

if (true == collision) {

return;

}///

4. 游戏关卡设计,配置:使用tile map可以定位在什么地方放置怪物,或者障碍物等,而且可以根据需要自定义附带各种需要的属性,从而达到关卡编辑的需求,如使用不同的自定义属性定义怪物和障碍物的种类,不同种类怪物的外观等;如下面代码,只是简单地领导敌人在地图的不同位置出现,其中“Enemy”属性也是自定义的,这里算是定义了敌人的种类,如果根据需要还可以定义敌人使用的图片资源,攻击力,何时出现等……做法是可以发挥想象满足很多需求

for (auto& epos : enemyObjGroup->getObjects()){

ValueMap& dict = epos.asValueMap();

if (dict[Enemy].asInt() == 1){

x = dict[x].asInt();

y = dict[y].asInt();

addEnemys(Point(x, y));///< 自定义增加敌人的函数

}

}

当然tile map十分强大,应该还有其他多种用法我没有总结全。

本文仅供参考,并非详细解说。

最后吐槽cocos2d-x使用tile map的一个超级大坑:

如果在tile map中新建了图层之后,但是没有在新建的图层中涂上任何图块,那么cocos2d-x一读这样的tmx文件的时候,整个游戏崩溃!!!试了我好几次才试出真正的原因!很可能有人一不小心就陷入大坑无法自拔,然后不得不重新做一张新的地图,然后又一不小心……

本站部分文章来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

    Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

  • 2018深圳国际人工智能展览会 2018 shenzhen International Artif

    2018深圳国际人工智能展览会 2018 shenzhen International Artif

  • teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

    teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

  • Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

    Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

网友点评网友点评
阅读推荐阅读推荐

据外媒报道,STEER打造了首款完全自动驾驶停车技术,旨在使常规车辆转变为无人驾驶车辆。STEER的首款技术应用是4级自动驾驶及网络安全停车...

近日,美国软性机器抓手制造商 Soft Robotics 宣布,获得 2000 万美元的融资,本轮投资者包括 Scale Venture Partners,Calibrate Ventures...

据外媒报道,加州车管局发布了《2017自动驾驶脱离报告(California Autonomous Vehicle Disengagement Reports)》,其中谈及了脱离的具体...

用人机语音交互,来解决智能家居适老的问题;通过家庭门禁与安防套件、空气净化套件、可燃气体与有害气体监控套件等相互联动,在不同生活情...