creator_creators - CSDN
  • Cocos Creator游戏引擎是一个完整的游戏开发解决方案,包含从设计、开发、预览、调试到发布的整个工作流所需的全部功能。目前支持发布游戏到 Web、iOS、Android、各类"小游戏"、PC 客户端等平台,真正实现一次开发,...
  • 如今,H5游戏、微信小游戏、抖音小游戏、头条小游戏、快手小游戏、百度小游戏、QQ轻游戏等小程序游戏都特别火,而这些小游戏中80%都是用Cocos Creator开发的,Cocos Creator可以做到一次开发,多平台部署。...
  • Cocos Creator游戏引擎是一个完整的游戏开发解决方案,包含从设计、开发、预览、调试到发布的整个工作流所需的全部功能。目前支持发布游戏到 Web、iOS、Android、各类"小游戏"、PC 客户端等平台,真正实现一次开发,...
  • Cocos Creator7个小游戏合集2048、小鸟、 黄金矿工 、开心消消乐、 跑酷、 扫雷、 飞机大战
  • 掌握Cocos Creator游戏开发的基本过程,能独立完成游戏项目的设计与开发。适用人群希望学习和了解手机游戏、H5游戏、网络游戏的初学者。想要开发自己的一款小游戏,并且部署到服务器上。 注意:本...
  • creator 点击事件

    2016-09-13 19:43:49
    properties: { background: cc.Node, },123 this.background.on(cc.Node.EventType.TOUCH_START,function(event){ })12 将background节点添加点击事件  ...creator里的新点击事件写法,cc.No
    <code class="hljs css has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"> <span class="hljs-tag" style="color: rgb(0, 0, 0); box-sizing: border-box;">properties</span>: <span class="hljs-rules" style="box-sizing: border-box;">{
            <span class="hljs-rule" style="box-sizing: border-box;"><span class="hljs-attribute" style="box-sizing: border-box;">background</span>:<span class="hljs-value" style="box-sizing: border-box; color: rgb(0, 102, 102);"> cc.Node,
        </span></span></span>},</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li></ul>
    <code class="hljs avrasm has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">   this<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.background</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.on</span>(cc<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.Node</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.EventType</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.TOUCH</span>_START,function(event){
       })</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li></ul>

    将background节点添加点击事件 
    (点击事件只能在节点上添加 ! ! ! ) 
    creator里的新点击事件写法,cc.Node.EventType.TOUCH_START是点击类型,点击类型一共有:

    TOUCH_START 
    当手指触摸到屏幕时.

    TOUCH_MOVE 
    当手指在屏幕上目标节点区域内移动时。

    TOUCH_END 
    当手指在目标节点区域内离开屏幕时。

    TOUCH_CANCEL 
    当手指在目标节点区域外离开屏幕时。

    MOUSE_DOWN 
    当鼠标按下时触发一次。

    MOUSE_MOVE 
    当鼠标在目标节点在目标节点区域中移动时,不论是否按下。

    MOUSE_ENTER 
    当鼠标移入目标节点区域时,不论是否按下。

    MOUSE_LEAVE 
    当鼠标移出目标节点区域时,不论是否按下。

    MOUSE_UP 
    当鼠标从按下状态松开时触发一次。

    MOUSE_WHEEL 
    当鼠标滚轮滚动时。

    展开全文
  • creator问题

    2019-06-22 16:43:07
    creator中如何导入其他特征数据(比如shape格式的数据)???? 转载于:https://www.cnblogs.com/supersyg/archive/2007/06/19/788634.html
    creator中如何导入其他特征数据(比如shape格式的数据)????

    转载于:https://www.cnblogs.com/supersyg/archive/2007/06/19/788634.html

    展开全文
  • 写在前面 从微信小游戏出生(2018年初)到现在,已经使用CocosCreator一年多了(之前做手游主要是cocos2d-x+lua),趁着这段时间有空,想着整理出一个基于CocosCreator游戏开发框架。 这个框架主要是将我在开发过程...

    写在前面


    从微信小游戏出生(2018年初)到现在,已经使用CocosCreator一年多了(之前做手游主要是cocos2d-x+lua),趁着这段时间有空,想着整理出一个基于CocosCreator游戏开发框架

    这个框架主要是将我在开发过程中觉得好用的结构和模式、插件,以及在论坛上和博客上参考大神们的教程和想法(有些是直接拿来用),整合在一起的。一方面想提高开发效率,另一方面大家发现问题及时提出及时讨论,慢慢优化和改进。

    框架工程是否跟游戏工程分开

    在开始之前,因为这个问题纠结了好久。框架工程跟游戏工程分离,框架工程作为一个独立代码库,仅仅作为游戏工程的子模块,这样代码库可以统一管理。

    我上个项目就是这样做的,但是你会发现,把框架模块单独拿出来给下一个项目复用,里面有一些耦合了游戏工程的代码。如果要每个成员在紧张的游戏开发过程中保持清醒,去保持框架模块的独立性,肯定是一个蛋疼的过程。

    后来阅读了两篇文章(关于游戏设计模式的)之后,确定了该框架仅仅作为一个“纯净”的基础框架,每开一个新项目就拷贝过去,然后根据游戏的需求自己去调整。

    两篇文章的链接在下面,有兴趣的可以了解下,不扯远了,准备进入正题!

    【游戏设计模式】之一 序言:架构,性能与游戏

    为什么在游戏开发中我不喜欢用MVC系列模式了




    正文


    目录细分和规划

    如下图:

    • animClip:存放动画文件(.anim)
    • font:存放字体文件
    • prefab:存放不需要动态加载的预制体
    • texture:存放用于贴图资源
    • texture/ui_common:存放公用的ui资源图集文件。
    • texture/ui_module:每个功能/模块单独用到的资源打包后的图集文件,比如main场景单独用到的打包一起,然后mian场景勾选自动释放资源,切换场景时就会自动释放没用的资源(前提是没有被其他的地方引用到)。
    • resources:存放一切需要用于动态加载(cc.load.loadRes)的资源

    为什么有些资源放在resources里面,有些放到外面?

    先看官网的解释:

    总结一下:

    1、resources文件夹中的资源可以跟它外部的其他资源,相互引用,所以放哪,问题不大。
    2、只有放在resources文件夹的资源才能用cc.loader.loadRes动态加载。
    3、构建时,resources文件夹中的所有资源连同它们关联依赖的resources文件夹外部的资源,都会被导出,并且项目中无用的资源将会在构建的过程中自动剔除。
    4、resources文件夹的资源,会增大包体和settings.js的大小,JSON的自动合并策略也将受到影响,无法尽可能将零碎的JSON合并起来。




    框架模块介绍


    # 配置表模块

    直接在现有的插件excel-killer的基础上做了小调整。

    • 相关目录(可以根据需求自己改动,相关文件:packages/excel-killer/panel/index.js)

    plugins-excel/excel:存放excel表

    plugins-excel/excel-ouput: 存放执行插件后的js输出文件

    assets/script/data/config: 执行插件后,会自动把js文件从plugins-excel/excel-ouput拷贝到此目录


    • 如何使用
    let cfgman = require('CfgMan');
    console.log(cfgman[1].name);  // 小明
    



    # 数据模块

    • 目录结构

    IDataModel.ts:数据模块基类,主要功能:读取数据表、读写本地缓存数据、网络数据交互


    • 本地缓存数据接口

    LoadStorage():将该模块的本地缓存数据读取到内存

    Query(sKey: string, defaultValue: any = null):访问指定键名的值

    Set(sKey: string, value: string | number):设置指定键名的值

    Save():保存内存数据到缓存文件


    • 网络数据交互接口

    sendProtocolMsg(msg):发送协议到服务端

    registerListeners():注册网络监听事件,需要在getMessageListeners()定义需要监听的协议和方法

    // AccountModel.ts
    getMessageListeners() {
        return {
            // key:消息名,value:执行函数
            ['G2C_Login']: (msg) => { this.G2C_LoginSuccess(msg) },
        }
    }
    



    # UI模块

    • 目录结构

    UIMng:UI管理器,用于打开、关闭UI

    UIBase:UI界面基类,在这里可以定义一些通用方法,供子类调用或者继承

    UIHelp:UI工具类,封装一系列UI相关的功能方法


    • 如何使用(配合自动化插件)

    1、新建一个场景或者prefab

    2、选中,然后到工具栏:扩展 -> ui-creator

    create-node-tree操作:将prefab节点树的结构自动导出到ts文件(目标文件夹:assets/script/data/autoui)

    export default class auto_notice extends cc.Component {
    const { ccclass } = cc._decorator;
    
    @ccclass
    export default class auto_notice extends cc.Component {
    	notice: cc.Node;
    	background: cc.Node;
    	title: cc.Node;
    	content: cc.Node;
    	btnClose: cc.Node;
    
    	public static URL:string = "db://assets/resources/prefab/notice/notice.prefab"
    
        onLoad () {
    		this.notice = this.node
    		this.background = this.notice.getChildByName("background");
    		this.title = this.notice.getChildByName("title");
    		this.content = this.notice.getChildByName("content");
    		this.btnClose = this.notice.getChildByName("btnClose");
    
        }
    }
    
    

    以后,你想要使用ui节点,就不需要各种getChildByName,或者搞个property在编辑器拖,所有的节点都导出在一个ts文件,然后作为一个组件添加到UI文件中,你只需要this.ui[节点名称]即可访问。

    create-ui-template操作:自动生成UI模板TS文件

    UI模板在packages\ui-creator\core\ui-template.txt中定义。

    3、将第2步create-ui-template操作生成的UI脚本文件,在编辑器拖到prefab的根节点作为组件

    4、UI的基本操作都封装在UIHelp中

    UIHelp.ShowUI(UINotice);    // 打开ui
    UIHelp.CloseUI(UINotice);   // 关闭ui
    UIHelp.SetLabel(this.ui.title, '测试公告标题'); // 修改label节点文本
    

    • TODO

    后续补充关闭UI清除相关无用资源


    • 这里说一下对于UI的一些想法和见解

    1、MVC模式。在框架中,每一个功能创建一个model类继承IDataModel,用于处理数据(配置表、本地数据、网络数据)。新建的prefab就是view,挂载在prefab的脚本组件就是controller,在controller实现功能逻辑。

    2、很多人在用CocosCreator开发时,经常会往节点上挂脚本,往按钮上绑定事件(看过好多github上的项目都是这样)。但我个人是很不建议这样做的,正常的团队开发合作中都是分工明确的,比如你在编辑器中用按钮绑定事件,难道美术修改的时候还要关心代码么。而且任意节点都可以挂脚本,这个真的有点“灾难性”,我要找在这个脚本在哪里用到的时候还要去编辑器一个个找么(可能有其他快速查找的方法,我不知道的,请指点一下)。

    3、所以我是比较支持,能用代码实现的尽量用代码实现,脚本文件能挂在根节点(方便找)的尽量挂在根节点。




    # 网络模块

    数据协议用Protobufjs,网络协议用WebSocket

    • Protobufjs(用的是5.x)

    1、安装nodejs、npm

    2、到新建的cocoscreator工程目录,初始化项目:执行npm init -y

    3、安装protobufjs5.x版本:执行npm install --save-dev protobufjs@5

    4、覆盖原protobuf的loadProtoFile方法

    protobuf原来的loadProtoFile方法:

    ProtoBuf.loadProtoFile = function(filename, callback, builder) {
        if (callback && typeof callback === 'object')
            builder = callback,
            callback = null;
        else if (!callback || typeof callback !== 'function')
            callback = null;
        if (callback)
            return ProtoBuf.Util.fetch(typeof filename === 'string' ? filename : filename["root"]+"/"+filename["file"], function(contents) {
                if (contents === null) {
                    callback(Error("Failed to fetch file"));
                    return;
                }
                try {
                    callback(null, ProtoBuf.loadProto(contents, builder, filename));
                } catch (e) {
                    callback(e);
                }
            });
        var contents = ProtoBuf.Util.fetch(typeof filename === 'object' ? filename["root"]+"/"+filename["file"] : filename);
        return contents === null ? null : ProtoBuf.loadProto(contents, builder, filename);
    };
    

    这里用了ProtoBuf.Util.fetch来读文件,所以需要重写loadProtoFile方法,用cc.loader.loadRes代替Util.fetch方法来读取文件:

    let ProtoBuf = require('protobufjs');
    ProtoBuf.Util.IS_NODE = cc.sys.isNative;
    // 此方法是将ProtoBuf.Util.fetch函数替换成cc.loader.loadRes函数,以解决在微信小游戏中不能使用XHR的问题
    ProtoBuf.loadProtoFile = function(filename, callback, builder) {
        if (callback && typeof callback === 'object')
            builder = callback,
            callback = null;
        else if (!callback || typeof callback !== 'function')
            callback = null;
        if (callback)
            return cc.loader.loadRes(typeof filename === 'string' ? filename : filename["root"]+"/"+filename["file"], function(error, contents) {
                if (contents === null) {
                    callback(Error("Failed to fetch file"));
                    return;
                }
                try {
                    callback(error, ProtoBuf.loadProto(contents, builder, filename));
                } catch (e) {
                    callback(e);
                }
            });
        var contents = cc.loader.loadRes(typeof filename === 'object' ? filename["root"]+"/"+filename["file"] : filename); 
        return contents === null ? null : ProtoBuf.loadProto(contents, builder, filename);
    };
    

    • WebSocket

    CocosCreator已经支持WebSocket,而如果是微信小游戏则用微信提供的WebSocket,具体查看:https://developers.weixin.qq.com/minigame/dev/api/network/websocket/wx.connectSocket.html

    工程中两种都实现了,其中浏览器平台已经测试过可行,并且提供了Nodejs服务端工程。


    • 目录结构

    ProtoBuf.ts:对protobufjs的修改和封装

    ProtoLoader.ts:用于加载proto文件

    Message.ts:proto msg的基类,并将msg缓存起来

    ProtoMessage.ts:插件根据proto文件生成的代码

    Socket.ts:WebSocket/WxSocket的具体实现

    SocketDelegate.ts:Socket代理类,根据具体平台创建socket,提供统一回调接口供具体Socket调用

    Network.ts:网络的逻辑实现,跟用户打交道,连接网络、关闭网络、登录流程、断网、重连都可以在这里处理


    • proto-killer插件

    将proto转成TS代码,在开发中会有编辑器智能提示。




    # 日志模块

    • 增加开关配置,每个大功能可以有一个开关,每个开发人员可以有一个开关,按需定义
    export const LOG_TAG = {
        SOCKET: { desc: 'LOG_SOCKET', isOpen: true },
        TEST: { desc: 'LOG_TEST', isOpen: false },
    }
    

    • 使用
    Log.log(LOG_TAG.SOCKET, 'socketprint');
    Log.warn('warn');
    Log.error('error');
    

    log方法第一个参数为开关分类,warn和error没有,因为我认为一般调试打印用log方法就够了,如果你用warn或error,肯定是需要所有人都知道的。




    # 事件模块

    EventMng.ts:事件分发我偷懒了,直接new一个cc.EventTarget来用,目前没有发现其他问题。




    # 其他

    GameController.ts:游戏全局控制类,比较杂的不知道放哪的可以看看能不能放这里

    GameDataCenter.ts:管理游戏各个模块数据

    global.d.ts:用于扩展基础模块

    utils文件夹:用于存放一些工具类





    最后


    这篇文章讲的主要是框架有什么东西,有些地方为何要这么设计,githu工程点这里

    看完有点懵逼?没关系,下篇文章是:CocosCreator游戏开发框架(二):怎么用

    我会在框架的基础上快速开发一个简单的客户端登陆系统,帮助大家快速上手。

    展开全文
  • FontCreator中文破解版9.0,中文版,绿色版本解压就可以使用了,很方便,一个字体库,只用几个,把整个包引进去就有点大,挑出来就用几个才十几k
  • Creator】学习笔记

    2016-12-02 09:55:06
    Cocos Creator 中脚本名称就是组件的名称,这个命名是大小写敏感的!如果组件名称的大小写不正确,将无法正确通过名称使用组件!打开的脚本里已经有了预先设置好的一些代码块,这些代码就是编写一个组件脚本所需的...

    Cocos Creator 中脚本名称就是组件的名称,这个命名是大小写敏感的!如果组件名称的大小写不正确,将无法正确通过名称使用组件!打开的脚本里已经有了预先设置好的一些代码块,这些代码就是编写一个组件脚本所需的结构。

    // 定义全局变量可以直接通过”this.”的方式

    this.jumpAction = this.setJumpAction(); 

    // 详情查询Cocos Creator生命周期
    update function 在加载场景以后自动每帧调用一次

    // 预制文件
    对于需要重复生成的节点,我们可以将他保存成Prefab(预制)资源,作为我们动态生成节点时使用的模板。

    // 用来定义属性和创建接口,命名开头加”_”可不在外部显示

     properties: {
         externalInterface: cc.type
     }

    只有在属性声明时规定 type 为引用类型时(比如cc.Prefab , cc.Node…类型),才能够将资源或节点拖拽到该属性上

    // this.getComponent(“name”)

    getComponent 获取节点上指定类型的组件,如果节点有附加指定类型的组件,则返回,如果没有则为空。传入参数也可以是脚本的名称。 (在当前节点上去获取”name”组件)

    // 求两个点之间的角度

    cc.radiansToDegrees(cc.pAngleSigned(po1,po2)) 返回点po1,po2之间的角度

    // 转坐标
    convertToWorldSpaceAR(将一个点转换到世界空间坐标系。结果以 Vec2 为单位。返回值将基于节点坐标。)
    convertToNodeSpaceAR(将一个点转换到局部坐标系。结果以 Vec2 为单位。返回值将基于节点坐标。)

    // 动态加载
    // 需要动态加载的资源必须放在名为resources的文件夹下**

    1.加载 Prefab

    cc.loader.loadRes("test assets/prefab", function (err, prefab) {
        var newNode = cc.instantiate(prefab);
        cc.director.getScene().addChild(newNode);
    });

    2.加载 AnimationClip

        cc.loader.loadRes("test assets/anim", function (err, clip) {
            myNode.getComponent(cc.Animation).addClip(clip, "anim");
        });

    3.加载单独的SpriteFrame

    cc.loader.loadRes("test assets/image", cc.SpriteFrame, function (err, spriteFrame) {
            myNode.getComponent(cc.Sprite).spriteFrame = spriteFrame;
        });

    4.将加载SpriteFrame封装成一个function,传入container(需要添加图片节点的Sprite),name(图片名字)两个参数,并在1S后显示他

    _addSpriteFrameToContainer:function(container , name){
            cc.log('load pic:',name)
            container.spriteFrame = this.loadWaitImage
            cc.loader.loadRes(name, cc.SpriteFrame, function (err, atlas) {
                cc.log(atlas)
                setTimeout(function() {
                    container.spriteFrame = atlas
                }, 1000);
            });
        }

    5.加载 SpriteAtlas(图集),并且获取其中的一个 SpriteFrame
    ! 注意 atlas 资源文件(plist)通常会和一个同名的图片文件(png)放在一个目录下
    所以需要在第二个参数指定资源类型**

        cc.loader.loadRes("test assets/sheep", cc.SpriteAtlas, function (err, atlas) {
          var frame = atlas.getSpriteFrame('sheep_down_0');
          sprite.spriteFrame = frame;
        });

    加载配置文件

    _loadMapData:function(){
            var that = this
            cc.loader.loadRes("csv/map", function (err, mapCsv) {
                //  配置文件内容换行
                var mapArr = mapCsv.split("\n")
                //  将配置文件从第二行开始用","隔开放入一个数组里
                for(var i = 1; i < mapArr.length;i++){
                    var arr = mapArr[i].split(',')
                    //  如果GameData.map[arr[0]]不存在则将GameData.map[arr[0]] = {}
                    //  如果GameData.map[arr[0]]存在则将值赋给他
                    GameData.map[arr[0]] = GameData.map[arr[0]] || {}
                    //  将配置文件里的内容添加到GameData.map里
                    GameData.map[arr[0]][arr[1]] = {
                        image:"pic/map_person/"+arr[2],
                        name:arr[3],
                        msg:arr[4],
                        position:cc.p(parseInt(arr[5]),parseInt(arr[6])),
                        action:arr[7]
                    }
                }
                that._loadEnd()
            });
        },
        _loadEnd:function(){
            this._loadedNum ++
            //  当所有配置文件加载完成以后,就进入if
            if(this._loadedNum == this._C_needLoadNum){
                //  加载完成
                //  用getComponent获取当前节点上的"ShowMap"组件,调用"ShowMap"里的pub_beginShow方法
                this.getComponent("ShowMap").pub_beginShow()
            }
        },

    设置物体移动方向技巧

        properties: {
        moveX:0,
        moveY:0,
        },
    
        updata: function (){
            this._player.x += this.moveX * 1
          this._player.y += this.moveY * 1
        }

    对外公布一个X,Y方向,通过在属性检查器上设置1,0,-1来改变他的移动方向

    展开全文
  • 但是,如果 Qt 程序较为庞大,通过上面的方式编写较为麻烦(大大影响编写效率),接下来给大家介绍 Qt 的一个集成开发环境(IDE)——Qt Creator,利用 Qt Creator 可以更加快速及轻易的完成 Qt 开发任务。...
  • 通过《Qt Creator的使用》的学习,我们可以借助 Designer(界面设计器)快速设计界面。 当我们编译 Qt 程序代码,Qt Creator 用 uic 工具把 ui 文件的内容转换成 C++ 代码,在工程目录同一级目录的 build- 目录下...
  • Qt Creator的下载和安装

    2018-11-08 13:25:00
    Qt和Qt Creator的区别 Qt是C++的一个库,或者说是开发框架,里面集成了一些库函数,提高开发效率。 Qt Creator是一个IDE,就是一个平台,一个开发环境,类似的比如说VS,也可以进行Qt开发,当然VS中的Qt是作为一个...
  • Cocos Creator 极速入门

    2018-11-26 13:17:34
    该课程对 Cocos Creator 官方实例工程做了详尽解说,并从作者多年引擎开发经验的角度,深入分析了其中的技术要点。对于想要快速掌握 Cocos Creator 功能用法的开发者,这是一个很不错的参考资料。 —...
  • 公司以前的一个老项目(华为应用包)有应用包签名的秘钥等信息,今天用Cocos Creator新建了个项目用Android Studio打包(包的签名信息都用的老项目的),把生成的APK包传送到华为手机上进行安装,谁知安装过程中什么...
  • 大体上也参考了QtCreator和LiteIDE这两个开源项目的插件管理及其他方面的一些内容。LiteIDE里部分内容及管理都参考了QtCreator。但LiteIDE网上找不到相关介绍的博文。如果要分析QtCreator软件设计的一些思路,大概...
  • 注释的原则是有助于对程序的阅读理解,不宜太多,也不能太少(一般情况下,源代码有效注释量必须在 20% 以上),注释必须准确、易懂、简洁。 说明性文件(例如:.h 文件、....怎么在 Qt Creator 中自动补全注释呢?
  • 触控的手牌—Cocos Creator 科普 Cocos Creator是触控最新一代游戏工具链的名称。如果不太清楚的,可以先看一些新闻。 新编辑器Cocos Creator发布: 对不起我来晚了! ...
  • Cocos Creator支持JS和TS两种脚本,在这里我强烈建议使用TS来做脚本开发。有几个比较重要的原因: TS本身是JS的超集,完全兼容js TS有静态语言特性,代码易于阅读和维护 近乎完美的智能提示,而JS的代码提示几乎...
  • Qt Creator简介:Qt Creator是一款轻量级的具有跨平台特性的集成开发环境。在该平台可以编写并编译运行C/C++源代码程序,并可以实现其良好的跨平台设计和图形界面的设计和开发。   安装包下载:链接: ...
1 2 3 4 5 ... 20
收藏数 109,599
精华内容 43,839
关键字:

creator