原本打算直接用CocosIDE的,毕竟是官方出品,并且支持Android远程调试,windows下的调试也非常方便,调试的信息也非常全,智能提示也不错。好了,一切看上去非常完美,可是它有一个致命缺陷,就是继承了eclipse一贯的特性--“卡”。基于java写的eclipse我一直使不惯,一方面是快捷键跟vs迥异,而我又懒得去配置(假设他能像IntelliJ IDEA一样,能够方便的删除反复快捷键,我还有兴致去配置一下,可是反复的快捷键没有不论什么提示。仅仅是在使用的过程中会有各种问题),还有一方面就是内存占用高。卡成翔了。常常打两个字母IDE就卡一两秒钟,当须要代码提示的时候等它提示出来的功夫我早就手打完了。用CocosIDE写代码非常不顺手。各种心烦意乱。

所以我花了一个下午尝试了几个对Lua支持比較好的编辑器,但都是各有各的长处,也各有各的缺点。

不像c++。vs+va差点儿完美。

1、IntelliJ IDEA Community Edition

这个是跟eclipse同等地位,可是各方面都优秀非常多的IDE,Android后来也基于这个搞了个Android Studio,试图代替基于eclipse的ADT。

长处是性能优异,代码提示方便(手打的过程中直接提示。并且差点儿没有卡顿)。假设我是java开发那就是不二选择。

只是我试验了一下它的lua插件,感觉不是非常好用。在提示上反而更像一个文本编辑器而不像一个智能的IDE(合情合理。毕竟仅仅是一个插件),这个比CocosIDE要差非常多。理论上好好设置下lua的提示文件(跟cocoside格式不同。并且感觉信息非常少。比方就没有函数參数信息和返回值信息)是能够达到比較理想的效果的。

可是可惜我不会......

2、Lua Studio

这个貌似是国人写的。非常不错,速度非常快。代码提示也非常不错。直接支持cocos2d-x 3.x的版本号。并且也支持outline等功能。 只是它有一个致命的问题。就是它没有直接执行程序的功能。仅仅有调试程序的功能。而调试程序连接CocosIDE的run time程序非常慢,要十秒钟才干启动程序。而我写lua程序,调试能够偶尔为之。可是执行程序必定是常常性的。 这点我就无法接受了。 当然我也能够把它当做纯lua文本编辑器,直接执行程序。 只是那样我又要修改run time的代码。增加Console窗体来输出log信息,否则哪里出错都不知道。

我有些思考,即便做到了99%,可是有一点没有做好也可能造成用户流失。 甚至这一点没有做好都不一定是软件本身的问题,有可能是用户无知或者误操作。可是现实就是用户流失,说多少遍“这不是我的错”都没用。

软件如此,游戏也是如此。

3、Bade vs plugin

这个是一个vs插件。相同具备调试功能。能够跟vs比較不错的嵌入到一起。 缺点是没有真正的代码提示。 仅仅有本文件内输入的提示。

4、Sublime Text3

试了几个都有不爽的地方,最后还是回到了Sublime Text。

以前我是用Vim的,可是用了Sublime Text,我就不想去碰Vim了,相同是跨平台、支持各种插件、功能强大的编辑器,我为什么不使用一个简洁美丽的,而觉得一个编辑器要分三种操作模式才是高大上?

当然就像Vim尽管可扩展。可是本质仅仅是一个文本编辑器而不是IDE。只是我们写lua脚本也相同不是写c++代码,并不须要多么强大的IDE支持。

Sublime本身对lua就有一定的支持,并且编辑器本身就有强大的代码补全、文件搜索、文件跳转、内容跳转等功能,所以基础功能是没什么问题了。 网上另一个QuickXDev的插件。是给quick-cocos2dx开发用的。只是因为cocos2-x v3 lua绑定方式改变了,所以对cocos2d-x原生的代码提示还没有完毕。仅仅有lua部分。

另外我加入了一个Cocos2dx的Build选项。说是Build,事实上就是执行Runtime程序。log能够直接在Sublime中输出。

选择Tools--Build--New Build System,将以下的代码拷贝过去,并保存,然后就能够选择这个Build了。

{
"cmd": ["E:\\Code\\runtime\\win32\\game.exe", "$file"],
"file_regex": "^(? :lua:)?[\t ](...*? ):([0-9]*):?([0-9]*)",
"selector": "source.lua",
"shell": true,
"working_dir" : "E:\\Code\\runtime\\win32"
}

当中cmd是程序的文件夹。shell为true能够让程序独立显示出来。否则仅仅是命令行输出在sublime中,working_dir顾名思义就是工作文件夹(资源文件夹)。

总结:临时没有尽善尽美的编辑器,我如今打算用Sublime Text3。尽管他也不完美。可是扩展性良好,并且就文本编辑器来说是接近完美的。

cocos2d-x+lua开发模式下编辑器的选择的更多相关文章

  1. MVC开发模式下的用户角色权限控制

    前提: MVC开发模式 大概思想: 1.在MVC开发模式下,每个功能都对应着不同的控制器或操作方法名(如修改密码功能可能对应着User/changepd),把每个功能对应的控制器名和操作方法名存到数据 ...

  2. 告诉你吧,一套皮肤在winform与wpf开发模式下实现的界面效果同样精彩,winform界面和wpf界面。

    一.同一资源: 二.先上软件界面: (1)wpf界面: 在wpf中实现这样类似web风格的软件界面就不用我多说了,在wpf实现这样的风格是很简单的,完全像网页设计一样的. (2)winform界面 在 ...

  3. dorado开发模式下实现动态查询

    使用dorado开发模式,我们可以实现以下开发技巧 开发技巧1.实现动态查询功能: 1. 查询按钮的onClick事件中写入: datasetEmployee.parameters().setValu ...

  4. 小程序开发-开发模式下关闭http域名校验

    小程序开发模式去掉域名校验 我们在开发小程序的时候如果用到其他网络地址,在小程序运行时调试器会输出 : http://www.example.com 不在以下 request 合法域名列表中,请参考文 ...

  5. Silverlight中在MVVM模式下对DatagridRow选择控件封装

    在项目中,凡是涉及到表格的地方用的最多的控件,自然少不了DataGrid的身影,它明了的展示各种数据让人十分喜欢.现在要实现一个功能,使DataGrid具有全选和项选中的功能,如果在传统后台代码中完成 ...

  6. [Vue 牛刀小试]:第十五章 - 传统开发模式下的 axios 使用入门

    一.前言 在没有接触 React.Angular.Vue 这类 MVVM 的前端框架之前,无法抛弃 Jquery 的重要理由,除了优秀的前端 DOM 元素操作性以外,能够非常便捷的发起 http 请求 ...

  7. PHP Strom 配置less 并设置编译后在远程开发模式下自动上传css文件

    ctrl+alt+s ->File Watchers->add-> 其中Argument中的-x代表最后编译过后的css文件为压缩过的 此时就可以用了,但是编译过后less可以自动上 ...

  8. ENVI二次开发模式下的Landsat数据读取

    从usgs网站或者马里兰大学下载TM或Landsat原始数据,数据可能包括9个tif数据,两个txt文件和一个gtf文件.示例结构如下: ENVI下可以直接打开*_MTL.txt文件打开,打开后波段列 ...

  9. vue-element-admin开发模式下style标签热更新失效[解决办法]

    参考:https://forum.vuejs.org/t/vue-cli-3-x-style/46306/3 vue.config.js添加配置 css: { sourceMap: false, mo ...

随机推荐

  1. (转) 淘淘商城系列——使用FastDFS-Client客户端进行上传图片的测试

    http://blog.csdn.net/yerenyuan_pku/article/details/72804018 不久之前,我们实现了商品的类目选择这个功能,但这只是万里长征的第一步,我们还有很 ...

  2. createuser - 定义一个新的 PostgreSQL 用户帐户

    SYNOPSIS createuser [ option...] [ username] DESCRIPTION 描述 createuser 创建一个新的 PostgreSQL 用户.只有超级用户(在 ...

  3. VC:UI编程

    VC++中给对话框设置背景图片的方法 -----------------------------------------------------方法一(铺满窗口)------------------- ...

  4. Jenkins总结(ant+jmeter+java)

    1.jdk与ant都需要在Jenkins-->系统管理-->全局工具配置里面配置各自的安装目录 2.修改Jenkins配置文件后,通过命令行重启: source /etc/profile ...

  5. extjs中Store和grid的刷新问题

    问题1:Store.load() 和Store.setproxy()区别 问题2:修改后的Grid 更新: Store.reload() 问题3,store删除后刷新会出问题 Store移除一行:St ...

  6. Nginx出现403 forbidden (13: Permission denied)报错的四种原因

    一.由于php-fpm启动用户和nginx工作用户不一致所致 php-fpm启动用户配置位置 nginx工作用户配置位置 二.不存在在文件,可能是文件路径有误,可以查看nginx错误日志来判断 三.缺 ...

  7. 01基础数据类型——list相关操作

    #列表的创建#列表是由[]来表示的,将元素放在[]中,如lst=["aa","bb",["cc","dd"," ...

  8. LNMP构架搭建论坛

    1 yum install -y apr* autoconf automake bison bzip2 bzip2* compat* cpp curl curl-devel fontconfig fo ...

  9. Matlab学习笔记(一)

    一.MATLAB概述 (一)运行环境 命令行窗口(Command Window) 表 1-1 数据显示格式设置(e_one_1.m) 格式 实例 说明 format short 3.1416 小数点后 ...

  10. 关于微信小程序getUserInfo最新修改后,如何在原有项目的授权逻辑的调整

    今天一大早调试小程序,结果出现这个...微信小程序也是醉了,这么大的改动,也没有通过开发者服务号通知一声 人在屋檐下不得不低头(改呗,那么如何以最小的代价更新呢,下面给我的解决方案) 原来我们在首次进 ...