cocos2dx之砖块地图研究——TiledMap,CCTMXTiledMap,CCTMXLayer,CCTMXObjectGroup

先对TiledMap,CCTMXTiledMap,CCTMXLayer,CCTMXObjectGroup做一下简单介绍。

TiledMap地图,是游戏开发中常用的地图,称之为砖块地图(瓷砖地图,瓦片地图),格式为tmx。官网:http://www.mapeditor.org/

CCTMXTiledMap,cocos2dx的地图类,通过加载tmx文件直接得到。

CCTMXLayer,cocos2dx中的图层类,代表了砖块地图中的图层。

CCTMXObjectGroup,cocos2dx中定义的对象层类,代表了砖块地图中的对象层,可以进行属性定义,如定义一个游戏中的精灵,就可以使用该对象。

以下是使用步骤:

1.将地图加载进来,并添加到当前CCLayer

CCTMXTiledMap *map = CCTMXTiledMap::create("orthogonal-test-vertexz.tmx");
addChild(map, 0, 1);
2.通过砖块地图获取Sprite

其实砖块地图中的每一个块都可以看做一个sprite,每一个砖块都具有Sprite的所有属性,如翻转、位移等。

首先获取地图中的图层:

CCTMXLayer* layer = map->layerNamed("trees");

然后获取图层中的某个块作为精灵:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
cocos creator实现的推箱子游戏,含源码和功能;游戏一共有100关卡。 cc.Class({ extends: cc.Component, properties: { // foo: { // // ATTRIBUTES: // default: null, // The default value will be used only when the component attaching // // to a node for the first time // type: cc.SpriteFrame, // optional, default is typeof default // serializable: true, // optional, default is true // }, // bar: { // get () { // return this._bar; // }, // set (value) { // this._bar = value; // } // }, starImg : cc.Node, itemBg : cc.Node, levelTxt : cc.Node, }, // LIFE-CYCLE CALLBACKS: onLoad () { }, start () { }, //--------显示星星数量-------- /** * @description: 显示星星数量 * @param {boolean} isOpen 是否开启 * @param {starCount} 星星数量 * @param {cc.SpriteAtlas} levelImgAtlas 纹理图 * @param {number} level 关卡 * @return: */ showStar : function(isOpen, starCount, levelImgAtlas, level){ this.itemBg.attr({"_level_" : level}); if(isOpen){ this.itemBg.getComponent(cc.Sprite).spriteFrame = levelImgAtlas.getSpriteFrame("pass_bg"); this.starImg.active = true; this.starImg.getComponent(cc.Sprite).spriteFrame = levelImgAtlas.getSpriteFrame("point" + starCount); this.levelTxt.opacity = 255; this.itemBg.getComponent(cc.Button).interactable = true; }else{ this.itemBg.getComponent(cc.Sprite).spriteFrame = levelImgAtlas.getSpriteFrame("lock"); this.starImg.active = false; this.levelTxt.opacity = 125; this.itemBg.getComponent(cc.Button).interactable = false; } this.levelTxt.getComponent(cc.Label).string = level; }, /
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值