当前位置:网站首页>quick-3.5 lua调用c++
quick-3.5 lua调用c++
2022-07-31 05:15:00 【xuyid】
1.生成Holo.cpp和Holo.h文件,具体实现省略。。。(Holo这个名字可以随意改)
2.在quick-3.5目录下的cocos文件夹里面新建my文件夹(my可以随意改名),然后把.cpp和.h文件放到quick-3.5/cocos/my
3.进入quick-3.5/tools/tolua文件夹下,复制cocos2dx_csloader.ini文件改名叫my_holo.ini然后修改my_holo.ini如下:
[my_holo]
# the prefix to be added to the generated functions. You might or might not use this in your own
# templates
prefix = my_holo
# create a target namespace (in javascript, this would create some code like the equiv. to `ns = ns || {}`)
# all classes will be embedded in that namespace
target_namespace = cc
android_headers = -I%(androidndkdir)s/platforms/android-14/arch-arm/usr/include -I%(androidndkdir)s/sources/cxx-stl/gnu-libstdc++/4.7/libs/armeabi-v7a/include -I%(androidndkdir)s/sources/cxx-stl/gnu-libstdc++/4.7/include -I%(androidndkdir)s/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/include -I%(androidndkdir)s/sources/cxx-stl/gnu-libstdc++/4.8/include
android_flags = -D_SIZE_T_DEFINED_
clang_headers = -I%(clangllvmdir)s/lib/clang/3.3/include
clang_flags = -nostdinc -x c++ -std=c++11 -U __SSE__
cocos_headers = -I%(cocosdir)s/cocos -I%(cocosdir)s/cocos/platform/android
cocos_flags = -DANDROID
cxxgenerator_headers =
# extra arguments for clang
extra_arguments = %(android_headers)s %(clang_headers)s %(cxxgenerator_headers)s %(cocos_headers)s %(android_flags)s %(clang_flags)s %(cocos_flags)s %(extra_flags)s
# what headers to parse
headers = %(cocosdir)s/cocos/my/Holo.h
# what classes to produce code for. You can use regular expressions here. When testing the regular
# expression, it will be enclosed in "^$", like this: "^Menu*$".
classes = Holo.*
# what should we skip? in the format ClassName::[function function]
# ClassName is a regular expression, but will be used like this: "^ClassName$" functions are also
# regular expressions, they will not be surrounded by "^$". If you want to skip a whole class, just
# add a single "*" as functions. See bellow for several examples. A special class name is "*", which
# will apply to all class names. This is a convenience wildcard to be able to skip similar named
# functions from all classes.
skip =
rename_functions =
rename_classes =
# for all class names, should we remove something when registering in the target VM?
remove_prefix =
# classes for which there will be no "parent" lookup
classes_have_no_parents =
# base classes which will be skipped when their sub-classes found them.
base_classes_to_skip = Clonable
# classes that create no constructor
# Set is special and we will use a hand-written constructor
abstract_classes =
# Determining whether to use script object(js object) to control the lifecycle of native(cpp) object or the other way around. Supported values are 'yes' or 'no'.
script_control_cpp = no
4.修改genbindings.py文件,在136行-150行之间插入:'my_holo.ini' : ('my_holo','lua_my_holo_auto'), \
5.打开终端,cd至quick-3.5/tools/tolua文件夹下 运行./genbindings.py,编译成功后会在quick-3.5/cocos/scripting/lua-bindings/auto目录下生成lua_my_holo_auto.cpp和lua_my_holo_auto.hpp
6.进入quick-3.5/tools/simulator/frameworks/runtime-src/proj.ios_mac目录,用xcode打开simulator.xcodeproj,点击左边目录结构,
在cocos2d_lua_bindings.xcodeproj目录下右键点击auto目录选择add fileds to "cocos2d_lua_bindings.xcodeproj",添加lua_my_holo_auto.cpp和lua_my_holo_auto.hpp
键点击cocos2d_libs.xcodeproj目录add fileds to "cocos2d_libs.xcodeproj",添加my文件夹
7.进入Classes文件夹,打开lua_module_register.h文件,在上面添加#include "lua_my_holo_auto.hpp"头文件,在lua_module_register方法下添加register_all_my_holo(L);
8.在xcode选择Simulator Mac 重新编译mac模拟器(注:1-8步骤只是改模拟器,9步骤才是改工程)
9.选择你的工程项目(工程名假如是:mydemo),按照上面的方法,
把quick-3.5/tools/tolua改成mydemo/frameworks/cocos2d-x/tools/tolua
把quick-3.5/cocos/scripting/lua-bindings/auto改成mydemo/frameworks/cocos2d-x/cocos/scripting/lua-bindings/auto
把quick-3.5/tools/simulator/frameworks/runtime-src/proj.ios_mac改成mydemo/frameworks/runtime-src/proj.ios_mac
打mydemo.xcodeproj按照上面1-7重新做一遍就可以了
边栏推荐
猜你喜欢
初识正则表达式

永恒之蓝漏洞复现

对js的数组的理解

动态规划(一)| 斐波那契数列和归递

Error: Cannot find module 'D:\Application\nodejs\node_modules\npm\bin\npm-cli.js'

代码块、Package,Import,封装(第六天)

leetcode-438. 找到字符串中所有字母异位词(滑动窗口)

npm WARN config global `--global`, `--local` are deprecated. Use `--location解决方案

NFT与数字藏品到底有何区别?

DeFi Token in the project management
随机推荐
[JVM Loading]---Class Loading Mechanism
Redis:安装使用
SQL注入中数据库的判断
(Crypto必备干货)详细分析目前NFT的几大交易市场
GUCCI, LV and other luxury giant universe how to layout yuan, other brands should keep up with?
DeFi Token in the project management
一个简单的bash转powershell案例
Understanding SSRF, this article is enough
Attribute Changer的几种形态
UiBot存在已打开的MicrosoftEdge浏览器,无法执行安装
js中的this指向与原型对象
MySQL压缩包方式安装,傻瓜式教学
Detailed explanation of pointers in C language
小米手机短信定位服务激活失败
How to distinguish big and small endian in C language
年终总结——岁月静好~
2021年京东数据分析工程师秋招笔试编程题
数据库 | SQL查询进阶语法
C language tutorial (3) - if and loop
Memcached :安装