本文详解介绍了Cocos Creator这一游戏开发方案。Cocos Creator包括 cocos2d-x 引擎的 JavaScript 实现,能让用户快速开发游戏所需要的各种图形界面工具。目前,其支持发布游戏到 Web、iOS、Android、各类"小游戏"、PC 客户端等平台,能够实现全平台运行。

CocosCreator基础教程(1)——从zIndex开始

从Cocos2d-x/lua/js过来的老程序员们肯定发现了,在CocosCreator属性检查器中Node节点竟然没有zIndex属性?

因为这一点,UI节点的遮挡关系控制不便,经常让策划、测试、甚至老板找程序员麻烦。不知道大家有没想过用编辑器去控制zIndex呢,请思考一下?我发现自己是用了CocosCreator快一年才去想到这个问题的。

要用编辑器控制,最简单的方案就是编写组件脚本。

/***SetZIndex.js 控制组件
**/
cc.Class({
    extends: cc.Component,    
    //编辑器属性定义
    properties: {
        zIndex: 0
    },
    onLoad () {        
        this.node.zIndex = this.zIndex;
    }
});

代码非常简单,将这个组件脚本挂载到任意节点上,通过zIndex属性就能控制节点的zIndex了,看下图:

SetZindex组件

但上面的代码有两个小问题,不仔细还不易被发现:

  • “zIndex:0”,这样定义zIndex属性,它是一个浮点数类型,你可以在编辑器设置0.1这样的值。运行在浏览器或H5环境没什么问题,但跑在原生环境zIndex对应的是cocos2d-x中的Node::setLocalZOrder(int localZOrder)函数,它的参数类型是整型。

  • 这个组件只在onLoad时设置了节点的zIndex,如果运行过程中,给这个组件的zIndex属性赋值没有任何作用,并且在编辑器中,你设置zIndex也看不到节点层级的变化。

知道问题了就好办了,看下面的代码:

/**
*SetZIndex.js 控制组件
**/
cc.Class({
    extends: cc.Component,    
    //编辑器属性定义
    properties: {
        zIndex: {
            type: cc.Integer, //使用整型定义
            default: 0,            
            //使用notify函数监听属性变化
            notify(oldValue) {                
                //减少无效赋值
                if (oldValue === this.zIndex) {               
                    return;
                }
                this.node.zIndex = this.zIndex;
            }
        }
    },
    onLoad () {        
        this.node.zIndex = this.zIndex;
    }
});

使用一个对象来定义zIndex属性,同时监听zIndex的修改,问题解决。

SetZIndex组件不依赖任何其它组件和节点,可以挂载任意节点之上,因此它是一个通用组件。不要小看了这个组件的设计,它蕴涵了CocosCreator的组件编程模式和思想。

cocosCreator视频教程

教程地址可以通过关注微信公众号cityapes或者扫描关注后回复游戏教程免费获取下载链接

游戏开发者,游戏开发教程相关推荐

  1. 【猿码】java swing实现喜羊羊与灰太狼推箱子游戏附带视频开发教程可做为Java毕设大作业

    大家好,今天给大家演示一下由Java swing实现的推箱子小游戏的一款项目,其图标用的是喜羊羊与灰太狼,所以又称喜羊羊与灰太狼版的推箱子游戏,该项目运行环境为普通的Java环境,jdk版本不限,下面 ...

  2. 喜羊羊与灰太狼java_java swing实现喜羊羊与灰太狼推箱子游戏附带视频开发教程...

    <p style="font-family:" font-size:15px;text-indent:2em;color:#555555;background-color:# ...

  3. unity课设小游戏_【Unity3D开发小游戏】《跑酷小游戏》Unity开发教程

    一.前言 最近跑酷游戏比较流行,开发教程也很多,但是大部分都是不太详细,这篇文章就带着大家一步一步开发出来一个跑酷类的游戏,教程比较基础,适合大部分Unity开发的初学者. 还有就是,此专栏已经开通收 ...

  4. 【Unity3D开发小游戏】《跑酷小游戏》Unity开发教程

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 一.前言 最近跑酷游戏比较流行,开发教程也很多,但是大部分都是不太详细,这篇 ...

  5. 【Unity3D开发小游戏】《VVVVVV游戏》Unity开发教程

    文章目录 一.前言 二.源码 三.正文 版本 1.摄像机设置 2.平面 3.平面物理 4.V字尖峰 5.玩家 6.玩家动画 7.玩家动画状态机 8.玩家物理 9.玩家移动 10.检查点 11.穿过V字 ...

  6. 【Unity3D开发小游戏】《2D乒乓球游戏》Unity开发教程

    一.前言 本篇文章教大家如何用unity制作一个2D游戏--乒乓球游戏,主要用到的Unity知识包括碰撞,Transfrom等知识,希望大家可以在这个小教程中学习到东西 效果图: 二.资源下载 UI资 ...

  7. 独立游戏开发者游戏素材网站推荐

    最近突然想做一款独立游戏,但是我作为一名Java后端开发程序员,第一难难以逾越的高峰就是游戏素材不知道怎么弄.经过一个多月的折腾,整理了一些有用的网站. 爱给网 地址:http://aigei.com ...

  8. 【Unity3D开发小游戏】《植物大战僵尸游戏》Unity开发教程

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 文章目录 一.前言 二.源码 三.正文 版本 1.主摄像机设置 2.创造草地 ...

  9. 【Unity3D开发小游戏】《我的世界游戏》Unity开发教程

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 一.前言 这套教程涵盖了Unity Mesh编程.模拟水算法(water s ...

  10. 【Unity3D开发小游戏】《战棋小游戏》Unity开发教程

    一.前言 这次想要做的一个小游戏,或者说一个小Demo,其实是一个简单且传统的战棋战斗场景.初步的设计是:在2D世界里创建一张由六边形地块组成的战斗地图,敌我双方依据体力在地图上轮流行动并向对方发动攻 ...

最新文章

  1. 联不上网 Unable to initialize Windows Sockets interface. General failure.
  2. Spring Ioc注解式开发中注解的作用
  3. Java文件类boolean isHidden()方法(带示例)
  4. jsp获取SessionID值
  5. C#中使用Dictionary实现Map数据结构
  6. python open r/rb
  7. godaddy无法修改域名服务器,GoDaddy域名修改DNS设置方法
  8. DeFi冰火两重天:数千项目,鲜有人用,存量厮杀如何撼动传统金融?
  9. 梦想起航商务工作PPT模板-优页文档
  10. 用PayPal在eBay上撸货加哪种卡可以长期用?
  11. JavaScript动态向表格添加数据
  12. 【读书笔记】高效能人士的七个习惯
  13. 1、OpenSearch入门配置
  14. 相差为2的两个素数称为孪生素数
  15. AndroidStudio - - - 点击头像更换头像_菜单选择_相机拍照与相册获取
  16. vue页面fav icon
  17. 网络 -- TCP三次握手和四次挥手
  18. 将docx文档转为doc文档
  19. 估值1500亿的阿里云为何要与市值1.2亿的新三板公司光环国际签署战略合作协议?
  20. 家用打印机助力返校季 惠普发布《亚洲儿童学习白皮书》

热门文章

  1. 25B无人直升机调试(Tuning)
  2. php 微信小程序签到功能,微信小程序每日签到
  3. Android实战开发-Kotlin教程(组件篇 2.2)
  4. Spring学习笔记—Spring之旅
  5. 通过maven命令获取参数值
  6. c语言编程环境搭配,windows7系统搭建C语言开发环境的操作方法?
  7. 通过资源监视器排查网络高占用异常
  8. python 金融风控模型_Python金融大数据风控建模实战 基于机器学习
  9. c语言中文件的四种读取方法
  10. python画点位变化向量图