【CocosCreator入门】CocosCreator组件 | TiledMap(地图)组件

这篇具有很好参考价值的文章主要介绍了【CocosCreator入门】CocosCreator组件 | TiledMap(地图)组件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

       Cocos Creator是一款流行的游戏开发引擎,具有丰富的组件和工具,其中TiledMap组件可以帮助开发者快速创建、加载和渲染地图。


目录

一、组件介绍

二、组件属性

三、脚本控制

3.1加载地图

3.2渲染地图

四、详细说明

五、关闭裁剪

六、节点遮挡


一、组件介绍

        TiledMap是基于Tiled地图编辑器的,Tiled是一款开源、跨平台的2D地图编辑器。Tiled支持多种地图格式,包括CSV、XML、JSON等。TiledMap组件会将Tiled地图编辑器编辑好的地图数据解析并渲染到游戏画面上。 在TiledMap组件中,地图数据主要分为两部分:地图属性和图块集。地图属性是指整个地图的一些基本信息,例如地图的大小、图块的大小等。图块集则是指地图中使用到的所有图块,每个图块都有自己的属性和位置信息。TiledMap组件会根据这些信息创建一个地图对象,并按照一定的规则将图块渲染到地图上。

二、组件属性

【CocosCreator入门】CocosCreator组件 | TiledMap(地图)组件

属性 功能说明
Tmx Asset 指定 .tmx 格式的地图资源

三、脚本控制

3.1加载地图

       在Cocos Creator中,可以通过以下代码来加载地图:

cc.resources.load('maps/map1', cc.TiledMapAsset, function (err, mapAsset) {
    if (err) {
        cc.error(err.message || err);
        return;
    }
    // 加载成功后,创建TiledMap组件
    var mapNode = new cc.Node();
    var tiledMap = mapNode.addComponent(cc.TiledMap);
    tiledMap.tmxAsset = mapAsset;
    // 将地图节点添加到场景中
    cc.director.getScene().addChild(mapNode);
});

       在以上代码中,首先使用cc.resources.load方法加载地图资源,其中maps/map1是地图资源的路径,cc.TiledMapAsset表示要加载的资源类型。在加载成功后,创建一个新的节点,并添加TiledMap组件,并将TiledMap组件的tmxAsset属性设置为加载成功的地图资源。最后将这个节点添加到场景中即可。

3.2渲染地图

       在TiledMap组件中,可以使用以下方法来获取地图上的图块:

var layer = tiledMap.getLayer('layer1');
var tile = layer.getTiledTileAt(0, 0, true);

       在以上代码中,首先获取TiledMap组件中名为layer1的图层对象,然后使用getTiledTileAt方法获取该图层上坐标为(0,0)的图块。最后,可以对这个图块进行一些操作,例如修改它的位置或旋转角度等。

四、详细说明

       添加 TiledMap 组件之后,从 资源管理器 中拖拽一个 .tmx 格式的地图资源到 Tmx Asset 属性上就可以在场景中看到地图的显示了。

       在 TiledMap 组件中添加了 Tmx Asset 属性后,会在节点中自动添加与地图中的 Layer 对应的节点。这些节点都添加了 TiledLayer 组件。请勿删除这些 Layer 节点中的 TiledLayer 组件。

【CocosCreator入门】CocosCreator组件 | TiledMap(地图)组件

       TiledMap 组件不支持 mapLoaded 回调,在 start 函数中可正常使用 TiledMap 组件。

五、关闭裁剪

cc.macro.ENABLE_TILEDMAP_CULLING = false;

       如果需要旋转地图或者把地图置于 3D 相机中,则需要关闭裁剪。另外,如果地图块不是非常多,如小于 5000 块,那么关闭裁剪还能减少 CPU 的运算负担,GPU 直接使用缓存进行渲染。

六、节点遮挡

       在游戏中,一些节点可能会遮挡住其他节点,导致被遮挡的节点无法正常显示。对于地图来说,当地图上有多个图层叠加时,可能会出现这种情况。为了解决这个问题,TiledMap组件提供了一些节点遮挡的功能,可以让被遮挡的节点暂时不显示,等到遮挡它的节点不再遮挡时再显示出来。

       在TiledMap组件中,可以使用以下方法来设置节点遮挡:

var layer = tiledMap.getLayer('layer1');
layer.enableCulling = true;

       在以上代码中,首先获取TiledMap组件中名为layer1的图层对象,然后将该图层的enableCulling属性设置为true。这样,当该图层上的某个节点被其他节点遮挡时,该节点会暂时不显示。等到遮挡它的节点不再遮挡时,该节点会再次显示出来。

       除了上述方法外,TiledMap组件还提供了其他一些节点遮挡的相关方法,例如:

  • setCullingDirty(): 设置节点遮挡脏标记,可以强制更新节点遮挡状态。
  • isCullingEnabled(): 获取该图层是否启用了节点遮挡功能。
  • setCullingBlockSize(size: cc.Size): 设置节点遮挡块的大小。
  • setCullingPadding(padding: cc.Rect): 设置节点遮挡块的内边距。
  • setCullingBorder(border: number): 设置节点遮挡边框的大小。

       总之,TiledMap组件是Cocos Creator中用于创建、加载和渲染地图的组件之一。它基于Tiled地图编辑器,可以快速创建和编辑地图,并在游戏中进行渲染。在使用TiledMap组件时,需要先将TiledMap组件添加到场景中,然后加载地图资源,并将TiledMap组件的tmxAsset属性设置为加载成功的地图资源。最后,可以使用TiledMap组件提供的方法来获取地图上的图块并进行一些操作。文章来源地址https://www.toymoban.com/news/detail-465221.html

到了这里,关于【CocosCreator入门】CocosCreator组件 | TiledMap(地图)组件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【CocosCreator入门】CocosCreator组件 | Mask(遮罩)组件

              Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中Mask组件可用于创建如圆形、矩形和任意形状的遮罩效果,以限制节点显示的范围。这对于创建具有复杂布局的UI元素非常有用,例如只显示图片的一部分或控制文本显示的区域。         使

    2024年02月12日
    浏览(45)
  • 【CocosCreator入门】CocosCreator组件 | Graphics(绘制)组件

            Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中Graphics组件允许您在游戏中绘制2D图形和几何形状,并通过编写脚本来控制其外观和行为。 目录 一、组件属性 二、组件方法 三、脚本示例 属性 功能说明 lineWidth 设置或返回当前的线条宽度 li

    2024年02月09日
    浏览(39)
  • 【CocosCreator入门】CocosCreator组件 | Collider(碰撞)组件

            Cocos Creator是一款流行的游戏开发引擎,具有丰富的组件和工具,其中碰撞系统组件是该引擎的重要组成部分。该组件可用于检测游戏中各个元素之间的碰撞,例如玩家角色与敌人、子弹与障碍物等。 目录 一、组件介绍 二、组件属性 2.1BoxCollider(矩形) 2.2CircleC

    2024年02月06日
    浏览(118)
  • 【CocosCreator入门】CocosCreator组件 | ParticleSystem (粒子)组件

             Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中ParticleSystem组件是一个用于创建粒子效果的工具,可用于实现火花、爆炸、雪花等效果。 目录 一、组件属性 二、组件使用 三、效果演示 四、性能优化 属性 功能说明 Preview 在编辑器模式下预览

    2023年04月22日
    浏览(45)
  • 【CocosCreator入门】CocosCreator组件 | Label(文本)组件

              Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中Label组件是最常用的之一。Label 组件是一个用于显示文本的 UI 组件。在本文中,我们将探讨 Label 组件的一些技术方面,包括如何创建、配置和使用它。 目录 一、组件介绍 二、属性介绍   三

    2024年02月09日
    浏览(41)
  • 【CocosCreator入门】CocosCreator组件 | Spine(骨骼动画)组件

             Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中Spine 是一个基于骨骼系统的 2D 动画工具,它可以让开发者通过对骨架和关键帧的调整来制作出更加自然、流畅的动画效果。Cocos Creator 支持使用 Spine 的 JSON 格式文件导入到项目中,并且提供了

    2023年04月15日
    浏览(46)
  • 【CocosCreator入门】CocosCreator组件 | DragonBones(骨骼动画)组件

             Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中DragonBones,它可以帮助您创建出色的2D骨骼动画。在本文中,我们将探讨CocosCreator引擎的DragonBones组件,以及如何使用它来创建精美的动画。 目录 一、组件属性  二、组件使用  三、挂点生成

    2023年04月20日
    浏览(46)
  • 【CocosCreator入门】CocosCreator组件 | PageView(页面视图)组件

           Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中的PageView组件是一种用于实现分页视图效果的重要组件。它可以让我们在游戏中实现各种分页视图效果,例如引导页、轮播图等。 目录 一、组件介绍 二、组件属性 三、组件使用  四、脚本示例

    2024年02月12日
    浏览(36)
  • Cocos Creator3.8 项目实战(二)cocos creator编辑器中绑定事件引发的bug解决

    问题描述: 编辑器里面多个按钮绑定同一个脚本,并配置事件,脚本中有其他消息监听,引起逻辑混乱。 问题原因: 编辑器里面多个按钮绑定同一个脚本, 每次绑定一个按钮事件,就会导致加载一次脚本 ,如上绑定了多个按钮的事件,脚本也就被加载多次,导致初始化接

    2024年02月07日
    浏览(58)
  • Cocos Creator问题汇总

    [Window] Cannot read property ‘cameraPriority’ of null node.on(Node.EventType.TOUCH_END, this.onBlockClicked, this); 解决 :监听的时候,node节点上必须有UITransform组件 Camera priority error - Cocos Creator - Cocos Forums 新建的prefab在运行的时候ui不显示,只能看到按钮上的label文本内容。 解决 :检查是否有C

    2024年02月13日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包