Cocos Creator的C++和Lua支持:alpha0版发布

哦,我知道了。我每次都是从测试例子拷贝并覆盖reader目录。而测试例子是没有lua绑定文件的,所以就被删除了。我以后注意一下。

@minggo 我自己从github 上拷贝了CreatorReaderBinding 相关的文件 可是在vs 上居然编译不过 是我include 路径设置不对么?

2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\intersection.h(27): fatal error C1083: 无法打开包括文件: “Macros.h”: No such file or directory (编译源文件 ..\Classes\reader\Collider\Intersection.cpp)
2>  CreatorReader.cpp
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collider.cpp(102): error C2039: “col”: 不是“cocos2d::Mat4”的成员
2>  e:\myluagame\frameworks\cocos2d-x\cocos\math\quaternion.h(36): note: 参见“cocos2d::Mat4”的声明
2>  CreatorReaderBinding.cpp
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.h(76): error C2039: “DrawNode”: 不是“cocos2d”的成员 (编译源文件 ..\Classes\reader\Collider\ColliderManager.cpp)
2>  e:\myluagame\frameworks\cocos2d-x\cocos\2d\ccnode.h(46): note: 参见“cocos2d”的声明 (编译源文件 ..\Classes\reader\Collider\ColliderManager.cpp)
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.h(76): error C2143: 语法错误: 缺少“;”(在“*”的前面) (编译源文件 ..\Classes\reader\Collider\ColliderManager.cpp)
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.h(76): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int (编译源文件 ..\Classes\reader\Collider\ColliderManager.cpp)
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.h(76): error C2238: 意外的标记位于“;”之前 (编译源文件 ..\Classes\reader\Collider\ColliderManager.cpp)
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(32): error C2614: “creator::ColliderManager”: 非法的成员初始化:“_debugDrawNode”不是基或成员
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(33): error C2065: “_debugDrawNode”: 未声明的标识符
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(33): error C3083: “DrawNode”:“::”左侧的符号必须是一种类型
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(33): error C2039: “create”: 不是“cocos2d”的成员
2>  e:\myluagame\frameworks\cocos2d-x\cocos\2d\ccnode.h(46): note: 参见“cocos2d”的声明
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(34): error C2065: “_debugDrawNode”: 未声明的标识符
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(34): error C2227: “->retain”的左边必须指向类/结构/联合/泛型类型
2>  e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(34): note: 类型是“unknown-type”
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(39): error C2065: “_debugDrawNode”: 未声明的标识符
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(39): error C2227: “->release”的左边必须指向类/结构/联合/泛型类型
2>  e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(39): note: 类型是“unknown-type”
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(44): error C2027: 使用了未定义类型“cocos2d::Director”
2>  e:\myluagame\frameworks\cocos2d-x\cocos\2d\ccnode.h(59): note: 参见“cocos2d::Director”的声明
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(44): error C3861: “getInstance”: 找不到标识符
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(44): error C2227: “->getScheduler”的左边必须指向类/结构/联合/泛型类型
2>  e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(44): note: 类型是“unknown-type”
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(44): error C2227: “->schedule”的左边必须指向类/结构/联合/泛型类型
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(54): error C2027: 使用了未定义类型“cocos2d::Director”
2>  e:\myluagame\frameworks\cocos2d-x\cocos\2d\ccnode.h(59): note: 参见“cocos2d::Director”的声明
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(54): error C3861: “getInstance”: 找不到标识符
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(54): error C2227: “->getScheduler”的左边必须指向类/结构/联合/泛型类型
2>  e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(54): note: 类型是“unknown-type”
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(54): error C2227: “->unschedule”的左边必须指向类/结构/联合/泛型类型
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(134): error C2027: 使用了未定义类型“cocos2d::Director”
2>  e:\myluagame\frameworks\cocos2d-x\cocos\2d\ccnode.h(59): note: 参见“cocos2d::Director”的声明
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(134): error C3861: “getInstance”: 找不到标识符
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(134): error C2227: “->getRunningScene”的左边必须指向类/结构/联合/泛型类型
2>  e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(134): note: 类型是“unknown-type”
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\intersection.h(27): fatal error C1083: 无法打开包括文件: “Macros.h”: No such file or directory (编译源文件 ..\Classes\reader\Collider\Contract.cpp)
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(183): error C2065: “_debugDrawNode”: 未声明的标识符
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(183): error C2227: “->clear”的左边必须指向类/结构/联合/泛型类型
2>  e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(183): note: 类型是“unknown-type”
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(185): error C2065: “_debugDrawNode”: 未声明的标识符
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(185): error C2227: “->getParent”的左边必须指向类/结构/联合/泛型类型
2>  e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(185): note: 类型是“unknown-type”
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(186): error C2027: 使用了未定义类型“cocos2d::Director”
2>  e:\myluagame\frameworks\cocos2d-x\cocos\2d\ccnode.h(59): note: 参见“cocos2d::Director”的声明
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(186): error C3861: “getInstance”: 找不到标识符
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(186): error C2227: “->getRunningScene”的左边必须指向类/结构/联合/泛型类型
2>  e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(186): note: 类型是“unknown-type”
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(186): error C2227: “->addChild”的左边必须指向类/结构/联合/泛型类型
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(186): error C2065: “_debugDrawNode”: 未声明的标识符
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(197): error C2065: “_debugDrawNode”: 未声明的标识符
2>  RichtextStringVisitor.cpp
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(197): error C2227: “->drawPoly”的左边必须指向类/结构/联合/泛型类型
2>  e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(197): note: 类型是“unknown-type”
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(203): error C2065: “_debugDrawNode”: 未声明的标识符
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(203): error C2227: “->drawCircle”的左边必须指向类/结构/联合/泛型类型
2>  e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(203): note: 类型是“unknown-type”
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(214): error C2065: “_debugDrawNode”: 未声明的标识符
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(214): error C2227: “->drawLine”的左边必须指向类/结构/联合/泛型类型
2>  e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(214): note: 类型是“unknown-type”
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(215): error C2065: “_debugDrawNode”: 未声明的标识符
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(215): error C2227: “->drawLine”的左边必须指向类/结构/联合/泛型类型
2>  e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(215): note: 类型是“unknown-type”
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(216): error C2065: “_debugDrawNode”: 未声明的标识符
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(216): error C2227: “->drawLine”的左边必须指向类/结构/联合/泛型类型
2>  e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(216): note: 类型是“unknown-type”
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(217): error C2065: “_debugDrawNode”: 未声明的标识符
2>e:\myluagame\frameworks\runtime-src\classes\reader\collider\collidermanager.cpp(217): error C2227: “->drawLine”的左边必须指向类/结构/联合/泛型类型

我这边编译的报错 我以为是没有添加cocos2d.h 可是添加之后依旧会报错

那请问 9月底的特性支持里面 包括prefab吗

@liuqigao 应该是reader库的路径问题,目前只在mac上测试,我会确认一下。
@273866906 应该是要包含的,我建个issue,这个漏了。

哈哈哈,好。等有空了研究下。
如果有个详细的例子就好了:grin:

仓库里就有好多creator的工程的例子。

感觉像loadingbar checkbox listview这类组件还是比较常用的,不知道为什么不加上。。虽然说可以自己实现,但是感觉还是加上比较好吧。。

这些不是有了吗?要看github最新的供能,在README里有写目前支持的功能。

@liuqigao 路径问题解决了:https://github.com/cocos2d/creator_to_cocos2dx/issues/76。我在android上测试了,在windows应该也没问题。需要把 reader 加入到搜索路径

好的 我等会试一下 谢谢了

用cocos create 新建范例集合
然后删掉cocos create 上的Examples
把creator-luacpp-support 放到E Examples/packages 重新在cocos create 上打开 用luaCpp support插件build报错


@minggo 我以前的项目是用cocos studio写界面 c++写逻辑
3.9版本以后不能用cocos studio 以前用studio 写界面 c++写逻辑的游戏 以后可以用create 和 c++来维护吗
现在做cocos create 支持c++和lua 是为了达到什么目的呢

插件没有支持所有的creator特性,已支持的特性在README有。creator的example包含了所有的特性,肯定有问题。

这个插件就是为了填补studio的空缺。

建议增加prefab文件导出node操作,

@minggo c++ 调用 析构方法和init 方法都不能调用了 能在仓库中上传一个简单的sample吗 传一个用c++ 可以和cocos create 上基础控件交互的
是不是现在的设计是 c++只启动scene 然后js 去实现逻辑

不大明白怎么去用c++ 搭配create 希望能有个sample 在仓库找了 没有找到sample

试了仓库里提供的sample, cocos2d-x-creator-cpp-support-test-v315.zip 用vs2013打开cpp-empty-test下的win32项目, 加入reader的内容,编译成功,顺利运行. 程序里的每个测试都是正常的,除了第一个"Animation". 有个小人飘了一会,程序报错.卡在:
{ // have a parent, do adoption
_Container_proxy *_Parent_proxy = _Parent->_Myproxy;

#if _ITERATOR_DEBUG_LEVEL == 2
if (_Myproxy != _Parent_proxy)
{ // change parentage
_Lockit _Lock(_LOCK_DEBUG);
_Orphan_me();
_Mynextiter = _Parent_proxy->_Myfirstiter;
_Parent_proxy->_Myfirstiter = this;
_Myproxy = _Parent_proxy;
}
其中 _Parent_proxy 是一个非法值.

@minggo
新增问题1:
<img src="/uploads/default/original/3X/4/e/4edc9a443131c95ae2e64916f5589f48165345c0.jpg" width=“690” height="378”>
2:[quote=“minggo, post:126, topic:45488, full:true”]
仓库里就有好多creator的工程的例子
[/quote] 我没有找到 请发下链接

@minggo
能写个简单的使用手册吗
不知道c++代码怎么写
1.怎么获得creator 场景下的控件
2.写c++代码怎么加到场景中 按钮的回调事件怎么写
3.通过代码控制动画播放 动画回调事件怎么写

你看前面有个Read Me, 里面可以找到一个 Sample project 的链接