傻瓜也会lua-bindings(Cocos2d-x 3.8.1)
来源:互联网 发布:故宫太和殿su模型数据 编辑:程序博客网 时间:2024/05/17 03:44
本文主要讲解如何在windows下导出C++接口到lua使用:
- 基本环境配置
- 导出简单的类
- 结语
基本环境配置
本机环境
cocos2d-x 3.8.1
visual studio 2015
python 2.7.3(32位)
android-ndk-r10d
此环境建立在已经有cocos2d-x的环境之上,不会搭建环境的萌新可以参考官网示例。为测试,我们在桌面新建一个lua的项目
- 在桌面按住shift+鼠标右键,点击在此处打开命令窗口
cocos new TestLua -p com.alex.testLua -l lua
新建完成之后目录结构如下
为方便后续测试,我们先打开TestLua.sln编译出exe
出现如下结果代表成功
准备工作完成之后,正式开始配置导出c++到lua的环境
一般我们不会用一个工具之前,首先查看README,找到并打开TestLua\frameworks\cocos2d-x\tools\tolua\README.mdown,Translation部分为本人渣渣翻译,大家将就一下,按步骤入坑
导出简单的类
基本环境搭建完毕后,开始尝试导出一个简单的类,拿FirstBlood
- 我们在Classes/MyLuaBindings下创建一个TestClass
TestClass.h
#pragma once#include "cocos2d.h"class TestClass : public cocos2d::Ref{public: TestClass()=default; ~TestClass()=default; static void test1(); void test();};
TestClass.cpp
#include "TestClass.h"USING_NS_CC;void TestClass::test(){ CCLOG("Member function test");}void TestClass::test1(){ CCLOG("Static function test");}
接下来就是重头戏了,给生成工具写配置文件,完成Double-kill
- 避免和cocos2d的导出混在一起,我们自立门户,拷贝genbindings.py改名为myGenbindings.py,以cocos2dx.ini为模板,生成一份my.ini
- 修改myGenbindings.py的导出路径和使用的配置文件如下
- 修改my.ini的配置如下(除了最后一个为no 其他的使用空值,也可按自己需要修改)
要杀就杀得痛快,导出绑定的C++代码,完成Triple-kill
在TestLua/frameworks/cocos2d-x/tools/tolua目录下按住shift+鼠标右键,点击在此处打开命令窗口,输入myGenbindings.py,然后回车,看到如下结果即完成此次杀戮
接下来回到visual studio 2015打开的工程,将导出的代码加入工程,并修正包含路径,注册自己的模块,完成Quadro-kill
到了四杀,不完成Penta-kill,总是心里痒痒的,在TestLua/src/app/views/MainScene.lua编写我们的测试代码运行完成此次杀戮吧
local MainScene = class("MainScene", cc.load("mvc").ViewBase)function MainScene:onCreate() -- add background image display.newSprite("HelloWorld.png") :move(display.center) :addTo(self) -- add HelloWorld label cc.Label:createWithSystemFont("Hello World", "Arial", 40) :move(display.cx, display.cy + 200) :addTo(self) local t = TestClass:new() t:test() TestClass:test1()endreturn MainScene
回到visual studio 2015,按F5启动调试查看测试结果如下
结语
博客处女作,不求写得beautiful,只求不误人子弟。
本次带领大家Penta-kill,若要Legendary,下局带领大家导出带有lambda的函数到lua。
- 傻瓜也会lua-bindings(Cocos2d-x 3.8.1)
- 傻瓜也会lua-bindings(Cocos2d-x 3.8.1)(二)
- cocos2d-x bindings-generator(lua调用c++)
- cocos2d-x bindings-generator(lua调用c++)
- 【cocos2d-x + Lua(1) 绑定Lua并使用tolua++】
- 【cocos2d-x + Lua(1) 绑定Lua并使用tolua++】
- Cocos2d-x JSB 自动绑定bindings
- Cocos2d-x JSB 自动绑定bindings
- 明明白白AOP(傻瓜也会心领神会)
- 明明白白AOP(傻瓜也会心领神会!)
- 明明白白AOP(傻瓜也会心领神会!)
- Cocos2d-x 3.1.1 Lua示例 ActionManagerTest(动作管理)
- Cocos2d-x 3.1.1 Lua示例 ActionEaseTest(动作)
- Cocos2d-x 3.1.1 Lua示例 ActionsProgressTest(进度条)
- 编译 cocos2d-x-3.13.1 程序:eclipse (lua)
- Cocos2d-x 3.1.1 lua-tests 开篇
- 新建一个Cocos2d-x Lua游戏[1]
- 1、cocos2d-x Lua安装配置
- python 数据类型的转换
- POJ 1947 Rebuilding Roads 贪心
- bzoj4152(神奇的最短路)
- Nexus-3.0以上版本创建本地中央仓库步骤
- ArrayList源码分析
- 傻瓜也会lua-bindings(Cocos2d-x 3.8.1)
- linux 文字模式下指令的详细说明
- sparklyr包:Spark Machine Learning
- iOS 定位相关问题
- 最近遇到两道简单算法题总结一下
- jsoncpp简介
- 一个给力的各种语言的框架的整理(来自于github的一个NB项目)
- php 代码功能性技巧
- SpringMvc 参数是对象,包含不提交基本类型的时候 400错误