Cocos官方论坛FAQ

欢迎大家!这里是Cocos中文官方论坛。在这里有引擎开发团队的专业解答。


1. 新论坛forum.cocos.com和老论坛bbs.cocoachina.com的关系

为了提供给大家更好的论坛使用体验,我们决定把Cocos中文官方论坛从CocoaChina.com拆分出来,升级为和英文论坛一样的技术方案。引擎开发团队将只在新论坛上活跃、解答问题、听取大家的反馈意见。请大家牢记forum.cocos.com这个域名,或者从cocos.com顶部导航条的最右边点击「官网论坛」进入

老论坛在cocoachina上将继续作为中立媒体存在,但引擎团队将不再光顾和回答问题。

新论坛提供的、而cocoachina不具备的功能,以下一个截图说明问题:


2. Cocos引擎各条产品线之间的关系

目前活跃投入研发、更新版本的产品线:

Cocos2d-x:用心做全球一流的开源游戏引擎。

这是整个引擎的基础,包括C++, Lua, JavaScript三个编程接口,开发平台Windows和Mac OSX,发布平台iOS, Android, WP, Tizen,对应论坛分类cocos2d-x。各位遇到编译问题、平台适配问题、核心渲染问题、UI / 物理 / 网络问题,都可以在cocos2d-x分类里面找到对应的子分类。

Cocos2d-x负责人 @minggo ,是从cocos2d-x第一天开始就始终坚持在一线编程、解答问题的引擎创始元老。

Cocos Creator:以内容创作为核心的游戏开发工具,在 Cocos2d-x 基础上实现了彻底脚本化、组件化和数据驱动等特点。

这是目前资源投入量最大的产品线,力求打造一个易用、可扩展的编辑器,支持2D和3D编辑器,在语言方面至少支持JavaScript和Lua语言,对于C++的支持方案还在评估中。Creator团队都是有丰富经验的游戏开发者,在论坛和知乎上也最为活跃。

Creator负责人 @nantas,在开发Creator之前是游戏制作人,在国内的独立游戏圈相当知名,在知乎上也很活跃。

AnySDK:全渠道接入,快人一步。

AnySDK是引擎接入渠道SDK的官方解决方案,提供免费版、付费的云服务版本、和付费的企业版。

曾经有过,但是已经合并,或者关闭的产品线

  • 合并项目
    • quick-x,已经合并到cocos2d-x内。廖大 @dualface 正在实现Cocos Creator的Lua支持,并打算将其作为quick的新版本发布,大家可以期待一下!
    • cocos2d-js,已经合并到cocos2d-x内。对应在论坛的分类是 JavaScript & H5。cocos2d-js的研发人员现在都在Cocos Creator项目组里了。
    • cocos2d-html5,已经合并到cocos2d-js,然后进一步合并到cocos2d-x内。
  • 关停项目
    • Cocos Code IDE,卒于2015年7月。我最初设计这个产品的切入点很实际,就是方便在手机上单步调试cocos的Lua脚本和JavaScript脚本。但是很可惜,首先是Code IDE和ARM DS-5一起,在立项之初被谷歌建议了了继续用Eclipse方案,导致最后很多深层问题无法解决;而改到Android Studio的IntelliJ方案重新做时,已经元气大伤,在公司内无法得到高层支持,于是在发Code IDE 2.0-beta之后这个项目就被砍了。目前Cocos Code IDE的替代品是Cocos Creator所带的代码编辑器,基于Microsoft开源的VS Code制作,今天还只有JavaScript调试。
    • Cocos Studio,卒于2016年3月。Studio项目发布了4年之后,在市场上仍然一片骂声,Studio团队不具备足够的产品设计能力和技术能力,亦无法虚心听取社区的反馈意见,导致了项目的失败。我在2016年初的时候原计划是creator和studio并行跑至少半年以上,但是在3月份的时候公司已经没有什么耐心了,承认Cocos Studio是一个失败项目,项目关停解散。Studio的替代品是Cocos Creator,目前Creator团队已经放出了导入Studio工程文件的功能并在持续完善中。
  • 搁置项目
    • Cocos。这个最大最值钱的品牌,在2015年被用在Cocos = Cocos Studio根本就是个错误。Cocos这个品牌应该代表以Cocos2d-x为基础和核心,外围集成了Creator, AnySDK等编辑器和辅助工具。Cocos品牌我打算重新规划重新定义,希望过一段时间后能和大家重新见面。
    • Cocos Store。资源商城本身是件好事,但是国内多数人版权意识单薄,我已经厌倦了三天两头接到电话说“你们商店里面出现了破解我们游戏美术资源在那边卖的情况,链接xxx,能否速度安排下架”。Store的事情,等我有精力了再来折腾。目前的情况,大家还是到国外网站上购买美术资源吧。

上面这样的描述,希望已经和大家解释清楚了目前Cocos旗下各产品的情况。


3. 论坛提问技巧

我们很想高效率地在论坛上帮助大家解答问题,但是各位的提问技巧很重要。

举个例子,坏的提问:

我编译apk失败了,怎么回事?

我的回答当然是:

什么信息都没有,我怎么知道怎么回事?

好的提问应该是这样的,比如:

我用cocos2d-x v3.10,在windows 7上面用cocos build -p android的时候编译失败了,用的Android SDK版本是5.1,ndk版本r10。编译出错日志如附件所示。

这样的提问,引擎团队才有可能帮你重现问题。类似地,如果遇到渲染不正确,那么请发你调用引擎的那段代码、以及错误的渲染效果截图上来,而不是简单地吼一句“为什么字体显示不正确?”,那样的提问是没人能回答的。


4. 论坛礼仪

论坛礼仪的注意事项,在英文论坛的FAQ 里面已经写得很详细了,我就不再赘述。几点特别强调的:

  • 先搜索再发帖。发帖之前先搜索是否有同样问题,特别是已提供解决方案的。对于反复回答一些同样的基础问题,引擎团队已经做了5年,不是太有耐心了。这也是我砍掉之前的support.cocos.com技术支持通道的主要原因。在一对一的封闭讨论中,知识无法被传播和共享,有悖于开源精神。
  • 请勿歪楼。如果有和楼主不同的话题讨论,那么请另起帖子,这是对楼主的基本尊重。
  • 请勿重复发帖。新论坛默认是把所有分类都显示在同一个列表里面的,以前同个帖子发在不同版面的方式已经没有效果了
  • 多用感谢。如果别人解答了你的问题,请不吝惜点击那个心型按钮表示感谢。

5. 严禁灌水或发无意义的内容

在英文版的论坛礼仪里面有一条,请勿发无内容的回复。这里我要单独拎出来说。

CocoaChina以及国内绝多数中文论坛,都有一种很不好的风气。有人很认真写了一篇长文或者教程,下面大量的回帖写「先顶再看」「谢谢楼主」「支持」「加油」「学习学习」「楼主干得漂亮」,我随便找个反面案例在这里,各位请自己看。这种无意义灌水,浪费服务器存储资源、浪费搜索帖子时候的CPU资源、浪费带宽资源,最最重要的是浪费大家看帖的时间。

在这个新论坛里面,所以没有积分和等级制度了,所以灌水不会提升level,只会招致24小时封禁。请大家珍惜论坛健康讨论的气氛。


祝大家逛论坛愉快!

10赞

我win10系统为什么安装不了,creator v1.2版本啊,双击exe文件,无响应,求解

技术支持人员你们好:
我用VSCode ios调试 cocos js 工程的时候,VSCode 远程debug连接建立成功后,XCode 报如下错误,请问应该如何解决。

xcode output:

ar: attachRequest: address: 192.168.2.230 port: 5086
ar: attachRequest: connected
ar: _termiated: socket end
ar: _termiated: cocos firefox protocol close
ar: _termiated: socket error

Device callstack from Xcode

Thread 1Queue : com.apple.main-thread (serial)
#0 0x00000001008e29c4 in js::Debugger::wrapDebuggeeValue(JSContext*, JS::MutableHandle) ()
#1 0x00000001008f1058 in DebuggerSource_getElement(JSContext*, unsigned int, JS::Value*) ()
#2 0x000000010090b7f4 in js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) ()
#3 0x000000010090bc44 in js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle) ()
#4 0x000000010090c098 in js::InvokeGetterOrSetter(JSContext*, JSObject*, JS::Value, unsigned int, JS::Value*, JS::MutableHandle) ()
#5 0x0000000100885040 in js::baseops::GetProperty(JSContext*, JS::Handle, JS::Handle, JS::Handle, JS::MutableHandle) ()
#6 0x0000000100906234 in Interpret(JSContext*, js::RunState&) ()
#7 0x00000001009007f4 in js::RunScript(JSContext*, js::RunState&) ()
#8 0x000000010090b900 in js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) ()
#9 0x00000001009076bc in Interpret(JSContext*, js::RunState&) ()
#10 0x00000001009007f4 in js::RunScript(JSContext*, js::RunState&) ()
#11 0x000000010090b900 in js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) ()
#12 0x00000001009076bc in Interpret(JSContext*, js::RunState&) ()
#13 0x00000001009007f4 in js::RunScript(JSContext*, js::RunState&) ()
#14 0x000000010090b900 in js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) ()
#15 0x00000001009076bc in Interpret(JSContext*, js::RunState&) ()
#16 0x00000001009007f4 in js::RunScript(JSContext*, js::RunState&) ()
#17 0x000000010090b900 in js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) ()
#18 0x000000010085967c in js::CallOrConstructBoundFunction(JSContext*, unsigned int, JS::Value*) ()
#19 0x000000010090b7f4 in js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) ()
#20 0x00000001009076bc in Interpret(JSContext*, js::RunState&) ()
#21 0x00000001009007f4 in js::RunScript(JSContext*, js::RunState&) ()
#22 0x000000010090b900 in js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) ()
#23 0x000000010090bc44 in js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle) ()
#24 0x0000000100833a60 in JS_CallFunctionName(JSContext*, JS::Handle, char const*, JS::HandleValueArray const&, JS::MutableHandle) ()
#25 0x000000010075ca8c in ScriptingCore::debugProcessInput(std::__1::basic_string, std::__1::allocator > const&) at /projects/examples/build/jsb-default/frameworks/cocos2d-x/cocos/scripting/js-bindings/manual/ScriptingCore.cpp:1699
#26 0x000000010075d440 in NS_ProcessNextEvent() at /projects/examples/build/jsb-default/frameworks/cocos2d-x/cocos/scripting/js-bindings/manual/ScriptingCore.cpp:1720
#27 0x000000010075cb48 in JSBDebug_enterNestedEventLoop(JSContext*, unsigned int, JS::Value*) at /projects/examples/build/jsb-default/frameworks/cocos2d-x/cocos/scripting/js-bindings/manual/ScriptingCore.cpp:1745
#28 0x000000010090b7f4 in js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) ()
#29 0x00000001009076bc in Interpret(JSContext*, js::RunState&) ()
#30 0x00000001009007f4 in js::RunScript(JSContext*, js::RunState&) ()
#31 0x000000010090b900 in js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) ()
#32 0x000000010085967c in js::CallOrConstructBoundFunction(JSContext*, unsigned int, JS::Value*) ()
#33 0x000000010090b7f4 in js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) ()
#34 0x00000001009076bc in Interpret(JSContext*, js::RunState&) ()
#35 0x00000001009007f4 in js::RunScript(JSContext*, js::RunState&) ()
#36 0x000000010090b900 in js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) ()
#37 0x000000010085967c in js::CallOrConstructBoundFunction(JSContext*, unsigned int, JS::Value*) ()
#38 0x000000010090b7f4 in js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) ()
#39 0x00000001009076bc in Interpret(JSContext*, js::RunState&) ()
#40 0x00000001009007f4 in js::RunScript(JSContext*, js::RunState&) ()
#41 0x000000010090b900 in js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) ()
#42 0x000000010090bc44 in js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle) ()
#43 0x0000000100833a60 in JS_CallFunctionName(JSContext*, JS::Handle, char const*, JS::HandleValueArray const&, JS::MutableHandle) ()
#44 0x000000010075ca8c in ScriptingCore::debugProcessInput(std::__1::basic_string, std::__1::allocator > const&) at /projects/examples/build/jsb-default/frameworks/cocos2d-x/cocos/scripting/js-bindings/manual/ScriptingCore.cpp:1699
#45 0x000000010075c850 in SimpleRunLoop::update(float) at /projects/examples/build/jsb-default/frameworks/cocos2d-x/cocos/scripting/js-bindings/manual/ScriptingCore.cpp:1683
#46 0x000000010076f440 in void cocos2d::Scheduler::scheduleUpdate(SimpleRunLoop*, int, bool)::‘lambda’(float)::operator()(float) const at /projects/examples/build/jsb-default/frameworks/cocos2d-x/cocos/scripting/js-bindings/proj.ios_mac/…/…/…/…/cocos/base/CCScheduler.h:284
#47 0x000000010076f410 in decltype(std::__1::forward(fp)(std::__1::forward(fp0))) std::__1::__invoke(SimpleRunLoop*, int, bool)::‘lambda’(float)&, float>(SimpleRunLoop&&, float&&) [inlined] at /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/…/include/c++/v1/__functional_base:416
#48 0x000000010076f3f0 in void std::__1::__invoke_void_return_wrapper::__call(SimpleRunLoop*, int, bool)::‘lambda’(float)&, float>(void cocos2d::Scheduler::scheduleUpdate(SimpleRunLoop*, int, bool)::‘lambda’(float)&&&, float&&) at /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/…/include/c++/v1/__functional_base:468
#49 0x000000010076f21c in std::__1::__function::__func(SimpleRunLoop*, int, bool)::‘lambda’(float), std::__1::allocator(SimpleRunLoop*, int, bool)::‘lambda’(float)>, void (float)>::operator()(float&&) at /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/…/include/c++/v1/functional:1437
#50 0x0000000100a9f0cc in std::__1::function::operator()(float) const at /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/…/include/c++/v1/functional:1817
#51 0x0000000100a9c570 in cocos2d::Scheduler::update(float) at /projects/examples/build/jsb-default/frameworks/cocos2d-x/cocos/base/CCScheduler.cpp:859
#52 0x0000000100ae7560 in cocos2d::Director::drawScene() at /projects/examples/build/jsb-default/frameworks/cocos2d-x/cocos/base/CCDirector.cpp:272
#53 0x0000000100aeb5c0 in cocos2d::DisplayLinkDirector::mainLoop() at /projects/examples/build/jsb-default/frameworks/cocos2d-x/cocos/base/CCDirector.cpp:1348
#54 0x0000000100ea77a0 in -[CCDirectorCaller doCaller:] at /projects/examples/build/jsb-default/frameworks/cocos2d-x/cocos/platform/ios/CCDirectorCaller-ios.mm:138
#55 0x0000000101e37768 in -[DYDisplayLinkInterposer forwardDisplayLinkCallback:] ()
#56 0x000000018531c234 in CA::Display::DisplayLinkItem::dispatch() ()
#57 0x000000018531c0e8 in CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) ()
#58 0x0000000182a61e54 in IODispatchCalloutFromCFMessage ()
#59 0x0000000182789030 in __CFMachPortPerform ()
#60 0x00000001827a17d4 in CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION ()
#61 0x00000001827a0f0c in __CFRunLoopDoSource1 ()
#62 0x000000018279ec64 in __CFRunLoopRun ()
#63 0x00000001826c8c50 in CFRunLoopRunSpecific ()
#64 0x0000000183fb0088 in GSEventRunModal ()
#65 0x00000001879aa088 in UIApplicationMain ()
#66 0x000000010010675c in main at /projects/examples/build/jsb-default/frameworks/runtime-src/proj.ios_mac/ios/main.m:8
#67 0x00000001822668b8 in start ()

我在论坛登陆的时候,post提交的密码是明文的.是不是网站漏洞啊。

微信小游戏粒子效果不显示,请问是什么问题????

请问我再写帖子的时候如何上传大于5张的图片啊?我写的文章比较长

我想写个贴子,还没编辑完,点保存了 怎么删除自己的贴子

不能更改用户名,之前取错了,会泄漏个人信息,想改改不了,手机号又被占用,彻底废了啊

你论坛私信我吧,想改成什么

已私信了 ,

请问我的CocosCreator为啥编辑器版本没有

你得从 Cocos Dashboard 启动,才方便在项目列表界面里看到编辑器版本。

论坛尝试修改邮箱,到了这一步后,一直收不到验证邮件。

1赞

请问技术人员,在编辑状态下怎么通过文件名获得资源