傻瓜也会lua-bindings(Cocos2d-x 3.8.1)

本文主要讲解如何在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

    TestLua.sln

  • 出现如下结果代表成功

    exe

  • 准备工作完成之后,正式开始配置导出c++到lua的环境

    一般我们不会用一个工具之前,首先查看README,找到并打开TestLua\frameworks\cocos2d-x\tools\tolua\README.mdownTranslation部分为本人渣渣翻译,大家将就一下,按步骤入坑
    环境搭建

导出简单的类

基本环境搭建完毕后,开始尝试导出一个简单的类,拿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的导出路径和使用的配置文件如下

    myGenbindings.py

    • 修改my.ini的配置如下(除了最后一个为no 其他的使用空值,也可按自己需要修改)

    my.ini

  • 要杀就杀得痛快,导出绑定的C++代码,完成Triple-kill

    TestLua/frameworks/cocos2d-x/tools/tolua目录下按住shift+鼠标右键,点击在此处打开命令窗口,输入myGenbindings.py,然后回车,看到如下结果即完成此次杀戮
    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()
end

return MainScene

回到visual studio 2015,按F5启动调试查看测试结果如下

调试

结语

博客处女作,不求写得beautiful,只求不误人子弟
本次带领大家Penta-kill,若要Legendary,下局带领大家导出带有lambda的函数到lua。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值