cocos2d-x使用tile map总结

cocos2d-x使用tile map总结,第1张

概述cocos2d-x使用tile map总结 使用tile map来做游戏能大大提高开发效率的,最近新开发的游戏也使用tile map来开发。 根据自己的使用过tile map的经验和参考一些资料,总结一下用法包括: 1 最基本的是做游戏地图,导入素材之后,用刷子刷出自己需要的地形图;创建地图和背景层的代码例子如下: auto tileMap = TMXTiledMap::create("try

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;                }///<blockage 为自定义属性,值为"true"        }    }
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文件的时候,整个游戏崩溃!!!试了我好几次才试出真正的原因!很可能有人一不小心就陷入大坑无法自拔,然后不得不重新做一张新的地图,然后又一不小心……

最后奉上几篇比较好的tile map入门教程,网上这种教程好像也比较少,不过有一下几篇就足够了:

http://www.cocos2d-x.org/wiki/TileMap

http://gamedevelopment.tutsplus.com/tutorials/introduction-to-tiled-map-editor–gamedev-2838

http://www.cocoachina.com/bbs/read.php?tid-196632.html

http://discuss.cocos2d-x.org/t/tutorial-series-use-the-cocos2d-x-3-0-game-engine-write-a-tile-map-game-part01/12938

总结

以上是内存溢出为你收集整理的cocos2d-x使用tile map总结全部内容,希望文章能够帮你解决cocos2d-x使用tile map总结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1063841.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存