本篇博文视频版请点击这里,欢迎大家点评订阅

cocoscreator与cocos2d-js 都是使用 javascript 语言,前一篇《探索cocos H5正确的开发姿势(一)》讲过它们与 cocos2d-x和 cocos2d-lua 在开发理念上有很大的不同,所以他们在开发、调试中使用到的工具上也有很大区别。

代码编辑器

博主经历过三个 cocos2d-js 项目和一个 creator 项目,选择好的编辑器需要从编写JavaScript代码的开发效率、开发体验上我认为需要满足下面几个要求:
1. 代码补全
2. 断点调试
3. 定义跳转
4. 命令终端
5. 代码校验
在曾经的项目中先后主要尝试过:Webstorm、 Sublime、VSCode、Atom等支持Javascript的编辑器,最后尝试还是集中在 Webstorm 和 VSCode上。

Webstorm是开发 JavaScript 应用的神器这点任何编辑器都难以匹敌,而且 Webstorm 也可以安装很多有意思的插件。但是因为它过于强大,在开发过程中体验是很多电脑运行一两个小时就显得很卡顿,特别是打开大文件、调试代码的时候。Webstorm 在单步调试 Nodejs 程序时也很缓慢,我大多数是使用node-inspector或devtool 调试,为了解决 Webstorm 卡顿我尝试下面三种方法:

改善Webstorm的性能三种方法

  1. 修改Webstorm内存配置文件
    使用文本编辑器打开文件:/Applications/WebStorm.app/Contents/bin/webstorm.vmoptions
    修改配置参数

    -xms1024m
    -Xmx2048m
    可以根据自己的电脑配置和 Webstorm 的使用效果调节上面数值

  2. 在 Webstorm 中排除检索目录

    如上图所示,鼠标选中要排除检索的目录->右键菜单->Mark Directory As -> Excluded

    在 cocos2d-js 项目中我一般会排除以下目录,供大家参考:
    /frameworks/cocos2d-x //不会在webstorm中编辑 C++文件
    /frameworks/runtime-src //项目原生工程
    /publish //release发布目录
    /simulator //debug发布目录
    /res //res是项目资源目录,其中大部分目录也会排除

  3. 禁用不需要的插件

    如上图所示进入Preferences->Plugins 中间窗口中显示有所有已经安装的插件,根据自己的情况将不需要的插件勾选掉,重启 Webstorm即可。

通过以上设置后可以显著减少 webstorm 卡顿现象,除了打开大文件的硬伤以外基本上没什么缺点了。

过滤 Creator项目中的.Meta 文件

博主在刚接触 CocosCreator 时也是使用的 Webstorm,代码补全、定义跳转等都没问题,唯一不足的就是不能断点调试。因为 Creator 工程不像 Cocos2d-js 没有明确的启动入口文件(index.html),只能在 Chrome中的 devtools 中调试。经过本人的反复尝试终于可以在 Webstorm 中调试 Creatore 工程了,而且 Creator 1.3 和 1.4 的调试方法还不一样。

在这里博主卖个关子,对 Webstrom调试 Creator 感兴趣的朋友可以在评论后留下邮箱地址,我会以视频演示的方式奉献给大家

webstrom中过滤.Meta文件

还有一点就是 Creator 工程中有个烦人的 xxx.Meta 文件,很是让人讨厌,尝试了好几次解决这个问题,终于在 Webstorm 的设置选项终于找到了文件滤选项。

如上图设置后,你会发现世界清静了,写代码来心情会更好,bug 也会更少了,你们说是不是呢?

在 VSCode 中过滤.Meta文件

在 VSCdoe 同样可以配置过滤,但没有像 Webstorm 那样的可视化选项,而是一个纯文本的配置文件。
1.使用 command + p打开命令控制台

2.编辑工作区配置文件

VSCode 的所有设置都在这个配置文件里编辑,左边提供了设置参考选项,它是只读的。

浏览器

使用cocos H5与使用 cocos2d-x 或 cocos2d-lua 最大的不同就是,你可以利用浏览器来预览、调试、测试你的游戏,不仅能让客户端开发人员快速地看到游戏效果,还能随时让服务端、策划、美术伙伴随时进行体验游戏。
主要用到的浏览器有: Chrome、微信Web开发者工具、FireFox、Safari,下面简要描述下不同浏览器的特点和使用场景。

chrome

  1. chrome 是开发中最常用、最重要的的预览工具和调试工具(建议项目组的策划、美术、服务器开发都使用 chrome 浏览器。
  2. chrome 可以调试JS代码,还可以调试手机浏览器和微信客户端。
  3. 在游戏的Canvas 周围集成一些测试工具,可以提高开发效率,就像 creator 提供的分辨率切换、FPS 显示等,如下图:

    这里做的不是很好,最好是能与游戏界面在同一个页面。

微信Web开发者工具

  1. 快速预览游戏在微信客户端中的适配效果。
  2. 检验你的javascript 代码是否兼容微信内置浏览器(我曾经遇到Array.find 函数在桌面浏览器运行正常,但在微信中却没有定义)。
  3. 调试微信jssdk的强力调试工具。

FireFox

FireFox主要用于远程调试 JSB 上的javascript 代码,不论是桌面、手机上、Android、iOS 都可以,需要注意的是 FireFox 的版本选择很重要,不然连接不上。
目前最新的cocos2d-x版本为3.14,cocoscreator版本是1.4,使用 FireFox 44版本远程调试都可连接的上,而最新版的 FireFox 51 本就不行。这里建议Cocos引擎官方能有一个对应表那个引擎版本对应那个 FireFox版本,类似如下表格:

cocos引擎版本 firefox版本
cocos2d-x 3.14 firefox 44
cocoscreator 1.4 firefox 44

Safari

很有可能你的代码在桌面浏览器、Android微信上都运行的很好,但在 iOS 手机上就有问题,这时就需要Safari浏览器了。
1. 在 Safari 浏览器上运行预览,如果不能通过桌面Safari也不能在iPhone的Safari和微信上运行,通过Safari开发者工具可以定位到出错的代码。
2. 在iPhone手机safari上运行游戏,数据线与Mac电脑相连,可以在Mac 电脑的 Safari 浏览器中调试iPhone上的Safari应用,所以Safari浏览器是开发iOS平台H5游戏的强大工具。需要注意的是要在 iPhone 设置中的 Safari 选项中打开调试开关。

操作系统

Cocos H5的开发主要集中在 Mac 系统和 windows 系统,我们所使用到的工具绝大多数都可以很好的运行在这两个平台上。

Mac 系统

Mac 系统与 windows 相比在软件开发上确实有很多的优点,我简单总结有以下几点
1. 支持所有开发环境和平台(iOS\Android\Windows\Linux\HTML5)
2. 兼容Unix的命令终端(终端必杀工具 zshell)
3. Alfred、XtraFinder、Spotlight效率工具减少鼠标操作
4. XCode开发调试iOS应用,除了它你别无选择

Mac 和 Windows 友好协作

但是我在工作中所遇到的大多数游戏公司只有一两台苹果电脑,主要用于打包、接入SDK,绝大多数开发人员还是在用 windows 系统,而且除了开发人员,策划、美术、服务器开发人员也是使用的 windows 系统,所以我这里不能只是说Mac系统如何的好,更重要的是如何让 Mac 系统与 windows 系统可以更多的友好的协作。

  1. 尽量统一使用跨平台的软件(包括命令行工具)
  2. 建议使用nodejs/python等跨平台的脚本语言编写内部工具,减少shell、批处理和静态编译语言
  3. 善用命令行工具与 Web 技术的组合开发GM工具、打包工具,让命令行工具可以被策划、美术等利用
  4. 所有代码目录分隔符统一使用反斜杠/
  5. 建议使用 Mac 系统作为内网服务器,开启SSH服务和VNC远程管理(VNC可以让多人同时使用一台 Mac 电脑互不影响,特别有用的是让美术或策划使用GlyphDesigner编辑字体)

Mac 电脑配置建议


很多的公司配置的 Mac 电脑并不是为了日常开发准备,只是用于打包、接入SDK,在硬件性能上可以说大多数都是最低配置。这不仅浪费硬件资源,更重要的是有开发人员使用这台 Mac 电脑工作,那是在浪费开发人员的时间,也是浪费整个项目开发的时间。
要让Mac电脑开发 Cocos H5能够发挥出应用的作用,配置至少达到下面这个要求:
1. Mac Mini中等配置以上
2. SDD硬盘,没有SSD硬盘的Mac电脑只是个摆设
3. 8G或8G以上内存,有条件最好16G
4. 双显示器(个人喜好)
其中最为重要的是 SSD 硬盘和内存,SSD硬盘也最好弄个大的,有的公司为了节约那点钱系统用个小的 SSD 硬盘,数据放在普通硬盘上,同样很难用。

本篇博文视频版请点击这里,欢迎大家点评订阅

未完待续,下一篇主要介绍cocos2d-js&creator的调试工具的用法,涉及浏览器和 JSB 上的调试,以及 Android上 adb catlog的使用。

Cosos H5开发工具箱上的更多相关文章

  1. css绝对定位如何在不同分辨率下的电脑正常显示定位位置?(一定要看!)

    这篇文章主要介绍了css绝对定位如何在不同分辨率下的电脑正常显示定位位置,本文首先解释了常见的电脑分辨率,为了页面在不同的分辨率下正常显示,要给页面一个安全宽度,再去使用绝对定位,具体操作步骤大家可查看下文的详细讲解,感兴趣的小伙伴们可以参考一下。

  2. xcode – 上传到App Store时进行身份验证

    只需为现有安装/文件夹创建备份,这很重要,因为在(新)安装期间,Transporter将删除以前的安装:现在运行以下命令来更新Transporter:希望这有助于某人.

  3. 无法验证iOS应用(已获得有效证书)

    当切换到优胜美地时,我干净安装了我的Mac,现在我在将iOS提交到商店时遇到了问题.当我验证我的存档时,我不断收到“您的帐户已经拥有有效的iOS分发证书”.我已尝试从会员中心重命名和重新下载我的证书,但这不起作用.解决方法一个非常常见的“doh!”

  4. ios – Veracode,调试符号和XCode

    我正在尝试通过Veracode扫描iOS应用程序:一个应用程序安全平台.为了使它们扫描.IPA,.IPA需要包含调试符号.对于正在使用的Archive构建配置和项目/目标,我已指定:>生成调试符号:是>复制期间剥离调试符号:NO>死代码剥离:没有>默认隐藏的符号:NO>剥离链接产品:没有然而,在提交.IPA时,Veracode仍然给我以下错误:没有调试符号编译的主文件–1个文件我需要采取另一个步骤来创建调试符号,或许是存档吗?

  5. ios – Xcode项目在文档大纲中显示为灰色

    我一直在使用iCloud来“同步”我正在从我的笔记本电脑到桌面的Xcode项目.不幸的是,它似乎没有那么好用.我今天在台式机上打开了一个项目,我昨天在笔记本电脑上工作.如果我在桌面上打开文件,则会丢失故事板中的某些按钮和标签.看看文档,我可以看到这些,但它们是灰色的(见图).但是,当我构建文件时,它们在模拟器中显示为正常.知道为什么或如何让它们正常出现?

  6. ios – Xcode 9.2模拟器调试中断;无法附加到进程ID

    iOS模拟器上的Xcode9.2调试对我来说已经彻底破坏了.我花了几个小时研究这个问题并尝试了大量的建议,但没有完全擦除我的硬盘并开始安装新的操作系统.我最终向Apple提交了一个错误.如果有人遇到此问题并有任何建议,请在此处发布.摘要:尝试使用调试可执行文件在调试模式下构建和运行时.模拟器只将应用程序打开到白色屏幕,然后Xcode弹出错误:重现步骤:制作任何项目并尝试在任何模拟器上运行.预期成绩

  7. Xcode:如何导出开发人员配置文件以便在另一台Mac上导入它

    我需要从我的旧Mac导出我的开发者配置文件并将其导入另一台Mac,因为我收到以下错误:我发现我可以从这里导出它:但在我的Mac上我有2个帐户,如果我点击导出帐户,我是否导出它们?就像导出用于签署iOS开发证书的私钥并将其导入新Mac一样?

  8. 在Xcode服务器中找不到代码签名标识

    使用Xcode7B4和Server5B4与Carthage项目.要构建项目,我需要首先构建它的依赖项.所以我使用以下代码向bot添加了BeforeIntegration步骤:自己运行一切都有效.但是当机器人运行时,我得到了这个:CodeSignerror:Nocodesigningidentitiesfound:Novalidsigningidentities(i.e.certificateand

  9. iOS从UIWebview内容创建pdf

    哪个是从webview内容中获取最佳质量pdf文档的最佳选择?

  10. macos – 使用Xcode 4在Mac OS X Lion上设置SDL

    我一直试图让一个超级简单的SDL程序工作.我正在使用MacOSXLion.我有SDL在SNowLeopard工作,但它似乎不想在狮子身上工作.到目前为止我有这个:当我尝试编译此代码时,它给了我这个错误:如果我取消注释当前评论的#ifdef内容,程序将编译,但随后会在SDL_SetVideoMode行上接收SIGABRT.我刚才在另一个程序中看到了这些注释的东西,我不确定我是否应该拥有它.我怎么能让这个工作?

随机推荐

  1. 【cocos2d-x 3.x 学习笔记】对象内存管理

    Cocos2d-x的内存管理cocos2d-x中使用的是上面的引用计数来管理内存,但是又增加了一些自己的特色。cocos2d-x中通过Ref类来实现引用计数,所有需要实现内存自动回收的类都应该继承自Ref类。下面是Ref类的定义:在cocos2d-x中创建对象通常有两种方式:这两中方式的差异可以参见我另一篇博文“对象创建方式讨论”。在cocos2d-x中提倡使用第二种方式,为了避免误用第一种方式,一般将构造函数设为protected或private。参考资料:[1]cocos2d-x高级开发教程2.3节[

  2. 利用cocos2dx 3.2开发消灭星星六如何在cocos2dx中显示中文

    由于编码的不同,在cocos2dx中的Label控件中如果放入中文字,往往会出现乱码。为了方便使用,我把这个从文档中获取中文字的方法放在一个头文件里面Chinese.h这里的tex_vec是cocos2dx提供的一个保存文档内容的一个容器。这里给出ChineseWords,xml的格式再看看ChineseWord的实现Chinese.cpp就这样,以后在需要用到中文字的地方,就先include这个头文件然后调用ChineseWord函数,获取一串中文字符串。

  3. 利用cocos2dx 3.2开发消灭星星七关于星星的算法

    在前面,我们已经在GameLayer中利用随机数初始化了一个StarMatrix,如果还不知道怎么创建星星矩阵请回去看看而且我们也讲了整个游戏的触摸事件的派发了。

  4. cocos2dx3.x 新手打包APK注意事项!

    这个在编译的时候就可以发现了比较好弄这只是我遇到的,其他的以后遇到再补充吧。。。以前被这两个问题坑了好久

  5. 利用cocos2dx 3.2开发消灭星星八游戏的结束判断与数据控制

    如果你看完之前的,那么你基本已经拥有一个消灭星星游戏的雏形。开始把剩下的两两互不相连的星星消去。那么如何判断是GameOver还是进入下一关呢。。其实游戏数据贯穿整个游戏,包括星星消除的时候要加到获得分数上,消去剩下两两不相连的星星的时候的加分政策等,因此如果前面没有做这一块的,最好回去搞一搞。

  6. 利用cocos2dx 3.2开发消灭星星九为游戏添加一些特效

    needClear是一个flag,当游戏判断不能再继续后,这个flag变为true,开始消除剩下的星星clearSumTime是一个累加器ONE_CLEAR_TIME就是每颗星星消除的时间2.连击加分信息一般消除一次星星都会有连击信息和加多少分的信息。其实这些combo标签就是一张图片,也是通过控制其属性或者runAction来实现。源码ComboEffect.hComboEffect.cpp4.消除星星粒子效果消除星星时,为了实现星星爆裂散落的效果,使用了cocos2d提供的粒子特效引擎对于粒子特效不了

  7. 02 Cocos2D-x引擎win7环境搭建及创建项目

    官网有搭建的文章,直接转载记录。环境搭建:本文介绍如何搭建Cocos2d-x3.2版本的开发环境。项目创建:一、通过命令创建项目前面搭建好环境后,怎样创建自己的Cocos2d-x项目呢?先来看看Cocos2d-x3.2的目录吧这就是Cocos2d-x3.2的目录。输入cocosnew项目名–p包名–lcpp–d路径回车就创建成功了例如:成功后,找到这个项目打开proj.win32目录下的Hello.slnF5成功了。

  8. 利用cocos2dx 3.2开发消灭星星十为游戏添加音效项目源码分享

    一个游戏,声音也是非常的重要,其实cocos2dx里面的简单音效引擎的使用是非常简单的。我这里只不过是用一个类对所有的音效进行管理罢了。Audio.hAudio.cpp好了,本系列教程到此结束,第一次写教程如有不对请见谅或指教,谢谢大家。最后附上整个项目的源代码点击打开链接

  9. 03 Helloworld

    程序都有一个入口点,在C++就是main函数了,打开main.cpp,代码如下:123456789101112131415161718#include"main.h"#include"AppDelegate.h"#include"cocos2d.h"USING_NS_CC;intAPIENTRY_tWinMain{UNREFERENCED_ParaMETER;UNREFERENCED_ParaMETER;//createtheapplicationinstanceAppDelegateapp;return

  10. MenuItemImage*图标菜单创建注意事项

    学习cocos2dx,看的是cocos2d-x3.x手游开发实例详解,这本书错误一大把,本着探索求知勇于发现错误改正错误的精神,我跟着书上的例子一起调试,当学习到场景切换这个小节的时候,出了个错误,卡了我好几个小时。

返回
顶部