Cocos2dx+lua打包wp8教程
来源:互联网 发布:淘宝第三方平台有哪些 编辑:程序博客网 时间:2024/06/06 14:12
首先你必须是微软开发者账号(现在是免费的),现在的微软的账号(就是你安装win8操作系统的时候叫你输入的账号)和开发者账号需要绑定的;
虽然库已经添加进来了,但是还应该有目录的,所以在“配置属性”下的“c/c++”目录下的“常规”选项中的“附加包含目录”添加:
这里我把目录列举出来,你们到时添加就行了:
$(EngineRoot)cocos\2d\platform\wp8
$(EngineRoot)cocos\2d\platform\winrt
$(EngineRoot)\external\winrt-specific\angle\include
$(EngineRoot)\external\winrt-specific
$(EngineRoot)cocos\2d
$(EngineRoot)cocos\math\kazmath
$(EngineRoot)cocos\audio\include
$(EngineRoot)cocos\2d\renderer
$(EngineRoot)cocos\ui
$(EngineRoot)cocos
$(EngineRoot)cocos\base
$(EngineRoot)cocos\physics
$(EngineRoot)external\chipmunk\include\chipmunk
$(EngineRoot)external
$(EngineRoot)cocos\editor-support
$(EngineRoot)
$(EngineRoot)cocos\math\kazmath\include
$(EngineRoot)cocos\deprecated
$(EngineRoot)external\win32-specific\gles\include\OGLES
$(EngineRoot)external\glfw3\include\win32
$(EngineRoot)cocos\scripting\lua-bindings\manual
$(EngineRoot)cocos\scripting\lua-bindings\auto
$(EngineRoot)cocos\scripting\lua-bindings\script
$(EngineRoot)external\lua
$(EngineRoot)external\lua\luajit\include
$(EngineRoot)external\lua\tolua
$(EngineRoot)external\libwebsockets\win32\include
$(EngineRoot)extensions\network
$(EngineRoot)extensions
$(EngineRoot)cocos\editor-support\spine
$(EngineRoot)cocos\editor-support\cocosbuilder
$(EngineRoot)cocos\editor-support\cocostudio
下面是配置完后的状态:
@3:然后是模仿quickv3中的libquickx来进行配置,我只上图,然后对应起来设置就行了
C/C++中的常规选择:
在C/C++中的预处理器这的预处理器定义中加入宏:
WP8
_LIB
_DEBUG
COCOS2D_DEBUG=1
CC_LUA_ENGINE_ENABLED=1
__STRICT_ANSI__
SQLITE_OS_WINRT
SQLITE_OMIT_WAL
CC_USE_JSON=1
CC_USE_CURL=1
CC_USE_CCS_ARMATURE=1
CC_USE_EXTRA_FILTERS=1
CC_USE_WEBSOCKET=1
CC_USE_TGA=1
CC_USE_SQLITE=1
如下:
然后在C/C++中的代码生成中设置:
然后在C/C++中的高级选择中设置:(强制包含文件手动输入pch.h)
@4:当然由于liblua项目中有c文件,我们必须把所以的c文件单独设置才行,否则就是无法解析的外部符号了。标记所以的c文件然后然后右击属性窗口来设置,如图:
.c文件在lua,Manual,tolua下面均有;
在c/c++中的常规中
在c/c++中的预编译头中设置:
然后在C/C++中的高级选择中设置:
@5:这时把平台设置为ARM,并且把liblua项目设置为启动项目,运行,等待。。。。。
现在主要是改cocos2dx3.0里的一些库:
Probelm1:..\..\..\..\..\cocos\scripting\lua-bindings\auto\lua_cocos2dx_auto.cpp(54393): error C2039: “createWithRect”: 不是“cocos2d::GLView”的成员:
在lua_cocos2dx_auto.cpp文件中
凡是遇到createWithRect调用的都注释掉;
如:
凡是遇到createWithFullScreen的都注释掉;
@6:运行项目(现在不管警告),如果有下面弹出窗口,恭喜你liblua库成功了,但是还会改库的(在后面):
@7:测试该项目:
在cpp-empty-testComponent项目中添加对liblua库的引用,一样右击cpp-empty-testComponent项目,在通用属性中添加新引用,把liblua库添加进来,而且
同样的要在C/C++常规中添加附加包含目录:
$(EngineRoot)cocos\scripting\lua-bindings\manual
$(EngineRoot)cocos\scripting\lua-bindings\auto
$(EngineRoot)cocos\scripting\lua-bindings\script
$(EngineRoot)external\lua
$(EngineRoot)external\lua\luajit\include
$(EngineRoot)external\lua\tolua
然后在AppDelegate.h中添加#include "CCLuaEngine.h"头文件,
在AppDelegate.cpp中的applicationDidFinishLaunching()函数中的代码全部注释,改成如下:
auto director = Director::getInstance();
auto glview = director->getOpenGLView();
if(!glview) {
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32 || CC_TARGET_PLATFORM == CC_PLATFORM_MAC || CC_TARGET_PLATFORM == CC_PLATFORM_WP8)
#else
glview = GLView::createWithRect("testLua", Rect(0,0,960,640));
director->setOpenGLView(glview);
#endif
}
auto engine = LuaEngine::getInstance();
ScriptEngineManager::getInstance()->setScriptEngine(engine);
engine->executeScriptFile("main.lua");
@8:上面完成后,把cpp-empty-testComponent项目设置为启动项目,运行,发现有问题:
Probelm1:error LNK2019: unresolved external symbol "public: void __cdecl cocos2d::Console::stop(void)" (?stop@Console@cocos2d@@QAAXXZ) 等类似的问题
解决办法:打开lua_cocos2dx_auto.cpp文件
把函数lua_cocos2dx_Console_stop(),lua_cocos2dx_Console_listenOnTCP(),
lua_cocos2dx_Console_listenOnFileDescriptor(),lua_cocos2dx_Console_log(),这四个函数注释掉,而且还有函数lua_register_cocos2dx_Console()中的 tolua_function(tolua_S,"stop",lua_cocos2dx_Console_stop);
tolua_function(tolua_S,"listenOnTCP",lua_cocos2dx_Console_listenOnTCP); tolua_function(tolua_S,"listenOnFileDescriptor",lua_cocos2dx_Console_listenOnFileDescriptor);
tolua_function(tolua_S,"log",lua_cocos2dx_Console_log);这四行注释掉;
Probelm2:liblua.lib(lua_cocos2dx_extension_auto.obj) : error LNK2019: unresolved external symbol "public: void __cdecl cocos2d::extension::AssetsManager::setStoragePath(char const *)
解决办法:这是因为在wp8库libExtensions下面的AssetsManager文件里夹里没有加入AssetsManager类,但是lua绑定的时候却又绑定了,所以加入进来就行了,那个类在cocos2d-x-3.0\extensions\assets-manager这个文件夹下:
但是这时要在AssetsManager.cpp中注释一些代码:
并且同样的要在liblua项目下的“配置属性”下的“c/c++”目录下的“常规”选项中的“附加包含目录”添加:
$(EngineRoot)extensions\assets-manager
Probelm3:iblua.lib(lua_cocos2dx_manual.obj) : error LNK2019: unresolved external symbol "public: void __cdecl cocos2d::Console::addCommand()
解决办法:在lua_cocos2dx_manual.cpp文件中把lua_cocos2dx_Console_addCommand()和 lua_cocos2dx_Console_send()这2个函数注释掉,而且在extendConsole()这个函数中把
tolua_function(tolua_S,"addCommand", lua_cocos2dx_Console_addCommand);
tolua_function(tolua_S,"send", lua_cocos2dx_Console_send);这两行代码注释掉;
如果pp-empty-testComponent项目运行没错,则成功;
@9:
由于当执行代码auto engine = LuaEngine::getInstance();时lua引擎自己会加载lua文件,所以把cocos2d-x-3.0\cocos\scripting\lua-bindings\script下的所有lua文件全部拷贝到
cocos2d-x-3.0\tests\cpp-empty-test\Resources下面即可;
在@7中的main.lua文件也是放到cocos2d-x-3.0\tests\cpp-empty-test\Resources下面的(包括你以后的lua代码和资源都放在这里的);
main.lua文件代码如下:
cc.Director:getInstance():setDisplayStats(true)
cc.Director:getInstance():setAnimationInterval(0.01)
这里我只要让手机屏幕的左下角显示出GL Verts:和GL calls就表示可以访问lua文件了,恭喜成功了。(当然你也可以加载图片来测试)
四:虽然打包完成,可以调用lua,但是在wp8平台运行的游戏可能还有许多问题,需要慢慢来改,如果遇到了而且解决了我也会随时更新的。
- Cocos2dx+lua打包wp8教程
- Cocos2dx-Wp8
- cocos2dx+lua打包Android过程中的问题
- Cocos2dx lua 关于android打包的批处理
- cocos2dx wp8 中文字体 解决方案
- Cocos2dx 之 WP8........
- 打包wp8问题记录
- cocos2dx-lua开发环境搭建及Cocos2d-JS环境配置教程windows打包apk同样在mac环境也一样打包ios的ipk
- 使用Android Studio来为Cocos2dx-lua项目打包
- 关于cocos2dx-lua打包apk遇到的download gradle问题
- cocos2dx lua编译打包安卓报的错误汇总
- lua教程九---使用cocos2dx-LuaProxy便捷Lua项目快速使用cocos2dx引擎extensions扩展包
- cocos2dx lua
- cocos2dx+lua
- cocos2dx-lua
- Cocos2dx lua
- [cocos2dx lua]cocos2dx lua入门
- quick-cocos2dx cocos2dx.lua
- 免费挂机互刷流量点击精灵-刷淘宝流量你懂得
- QT的动画框架 概述
- iOS 9: UIStackView入门
- Leetcode--easy系列8
- qt状态机和动画框架
- Cocos2dx+lua打包wp8教程
- android文件的写入与读取---简单的文本读写context.openFileInput() context.openFileOutput()
- linear regression
- Spiral Matrix
- MYSQL管理之主从同步管理
- [android] apk 版本升级
- ERP报表测试的总结
- solr4.4以后搭建MultiCore的新方法
- stm32.cube(十)——单HAL模块的结构