cocos2d-x+lua开发模式下编辑器的选择
原本打算直接用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开发模式下编辑器的选择的更多相关文章
- MVC开发模式下的用户角色权限控制
前提: MVC开发模式 大概思想: 1.在MVC开发模式下,每个功能都对应着不同的控制器或操作方法名(如修改密码功能可能对应着User/changepd),把每个功能对应的控制器名和操作方法名存到数据 ...
- 告诉你吧,一套皮肤在winform与wpf开发模式下实现的界面效果同样精彩,winform界面和wpf界面。
一.同一资源: 二.先上软件界面: (1)wpf界面: 在wpf中实现这样类似web风格的软件界面就不用我多说了,在wpf实现这样的风格是很简单的,完全像网页设计一样的. (2)winform界面 在 ...
- dorado开发模式下实现动态查询
使用dorado开发模式,我们可以实现以下开发技巧 开发技巧1.实现动态查询功能: 1. 查询按钮的onClick事件中写入: datasetEmployee.parameters().setValu ...
- 小程序开发-开发模式下关闭http域名校验
小程序开发模式去掉域名校验 我们在开发小程序的时候如果用到其他网络地址,在小程序运行时调试器会输出 : http://www.example.com 不在以下 request 合法域名列表中,请参考文 ...
- Silverlight中在MVVM模式下对DatagridRow选择控件封装
在项目中,凡是涉及到表格的地方用的最多的控件,自然少不了DataGrid的身影,它明了的展示各种数据让人十分喜欢.现在要实现一个功能,使DataGrid具有全选和项选中的功能,如果在传统后台代码中完成 ...
- [Vue 牛刀小试]:第十五章 - 传统开发模式下的 axios 使用入门
一.前言 在没有接触 React.Angular.Vue 这类 MVVM 的前端框架之前,无法抛弃 Jquery 的重要理由,除了优秀的前端 DOM 元素操作性以外,能够非常便捷的发起 http 请求 ...
- PHP Strom 配置less 并设置编译后在远程开发模式下自动上传css文件
ctrl+alt+s ->File Watchers->add-> 其中Argument中的-x代表最后编译过后的css文件为压缩过的 此时就可以用了,但是编译过后less可以自动上 ...
- ENVI二次开发模式下的Landsat数据读取
从usgs网站或者马里兰大学下载TM或Landsat原始数据,数据可能包括9个tif数据,两个txt文件和一个gtf文件.示例结构如下: ENVI下可以直接打开*_MTL.txt文件打开,打开后波段列 ...
- vue-element-admin开发模式下style标签热更新失效[解决办法]
参考:https://forum.vuejs.org/t/vue-cli-3-x-style/46306/3 vue.config.js添加配置 css: { sourceMap: false, mo ...
随机推荐
- pringBoot Controller接收参数的几种常用方式
第一类:请求路径参数1.@PathVariable 获取路径参数.即url/{id}这种形式.2.@RequestParam 获取查询参数.即url?name=这种形式例子 GEThttp://loc ...
- USB设备请求命令详解
USB设备请求命令 :bmRequestType + bRequest + wValue + wIndex + wLength 编号 值 名称 (0) 0 GET_STATUS:用来返回特定接收者 ...
- NPOI--------------.Net操作Excel初步使用(导出)
背景 因公司项目需要添加数据导出功能故此添加,找了几种方式发现该方式具有 无需依赖本机安装office环境,使用灵活等优点故采用此方式. 安装 Nuget 直接安装NPOI即可 使用方式 1.根据需要 ...
- 为了安全请不要随意在页面中设置validateRequest="false"
为了安全请不要随意在页面中设置validateRequest="false" 分类: ASP.NET2009-04-12 17:24 531人阅读 评论(0) 收藏 举报 asp. ...
- HDU - 2102 A计划(双层BFS)
题目: 可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验.魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主的肉也能长生不老.年迈的国王正是心急如焚, ...
- 笔试算法题(24):找出出现次数超过一半的元素 & 二叉树最近公共父节点
出题:数组中有一个数字出现的次数超过了数组长度的一半,请找出这个数字: 分析: 解法1:首先对数组进行排序,时间复杂度为O(NlogN),由于有一个数字出现次数超过了数组的一半,所以如果二分数组的话, ...
- [Python3网络爬虫开发实战] 1.6.1-Flask的安装
Flask是一个轻量级的Web服务程序,它简单.易用.灵活,这里主要用来做一些API服务. 1. 相关链接 GitHub:https://github.com/pallets/flask 官方文档:h ...
- MongoDB中mapReduce的使用
MongoDB中mapReduce的使用 制作人:全心全意 mapReduce的功能和group by的功能类似,但比group by处理的数据量更大 使用示例: var map = function ...
- Django所包含属性
Django包含的属性 定义属性 概述: 1.django根据属性的类型确定以下信息 2.当前选择的数据库支持字段的类型 3.渲染管理表单时使用的默认html空间 4.在管理站点最低限度的验证 注意: ...
- 【转载】Hadoop NameNode 高可用 (High Availability) 实现解析
转载:https://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-name-node/ NameNode 高可用整体架构概述 在 Had ...