cocos2dx 2.x版本:简化提炼tolua++绑定自定义类到lua中使用,cocos2dxtolua

  次阅读 作者:智能小宝 来源:互联网 2015-09-28 13:40 我要评论(0)

cocos2dx 2.x版本:简化提炼tolua++绑定自定义类到lua中使用,cocos2dxtolua

cocos2dx的3.x版本已经提供了更好地绑定方式,网上有很多相关的教程,这里给一个链接:http://www.cocoachina.com/bbs/read.php?tid=196416。

由于目前我们的项目使用的是2.x版本的,且已经开发了一半了,这时候不适合转3.x的版本,于是只能用2.x的老方法tolua++来实现绑定。这就有一个蛋疼的问题,太麻烦!每次都要写pkg、使用tolua++.exe解释器编译生成新的cpp,在其中添加自己的类的头文件引用,然后把这个新的cpp文件覆盖到liblua中以前的,再编译库,生成新的obj,才算完事。这里给出木头大神的文章,里面写的很清楚:http://blog.csdn.net/musicvs/article/details/8166572/。

可是我不想每次都这样麻烦,我希望在自己的工程里添加绑定的接口,这样每次运行时只更新我自己的项目,就可以让lua识别我的类。初一想,那就把“LuaCocos2d.cpp”这个类放到项目中如何,这个想法完全可以的,即我们新的绑定就不再添加到“LuaCocos2d.cpp”这里了,而是单独生成一个新的、只有我们自己的的绑定类接口的一个类放到工程中。好了,废话不多说,看流程

1】首先在我们自己的项目中创建一个文件夹,专门存放对lua的绑定接口类以及相关文件:LuaAPI

2】创建一个pkg文件,这个文件我们只创建一个,作为基础调用,用来给tolua++使用的,我们待会会详细说明

3】将cocos2d-x-2.2.3\tools\tolua++目录下的三个文件拷贝到1】中创建的文件里,这是工具,用来生成用的,这个不能少

这些文件的作用,在相关绑定的文章里有详细介绍,这里稍微提一下:

①basic.lua里面规定了tolua++解释器在解析pkg文件时候的附加规则

②build.sh脚本命令,用来启动tolua++解释器解析pkg生成我们需要的那个cpp文件。这里需要改动,因为拷贝了一份在这个目录下,所以路径都变了,这里要注意。

#!/bin/bash

#

# Invoked build.xml, overriding the lolua++ property

SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)

TOLUA=`D:\cocos2d-x-2.2.3\projects\actgamelua\Classes\LuaAPI`

if [ -z "${TOLUA}" ]; then

TOLUA=`D:\cocos2d-x-2.2.3\projects\actgamelua\Classes\LuaAPI`

fi

if [ -z "${TOLUA}" ]; then

echo "Unable to find tolua++ (or tolua++5.1) in your PATH."

exit 1

fi

cd ${SCRIPT_DIR}

${TOLUA} -L basic.lua -o "api/LuaAPI.cpp" API.pkg

这里有个"api/LuaAPI.cpp",这是我们指定的要生成的cpp文件,即生成LuaAPI.cpp放在“api/”目录下(在我们创建的LuaAPI文件夹下)

③build.bat批处理程序,实际上就是执行build.sh里的设置,同样的,路径要改一下:

tolua++ -L basic.lua -o "api/LuaAPI.cpp" API.pkg

④tolua++.exe解释器,用来解析pkg生成cpp的

4】此时,工具已备齐,命令也写好了,接下来我们要定义一个类,这个类是类似于pkg的描述文件,只不过以后我们的绑定类都按照pkg的格式写在这个里边,而不是写好多的pkg,并添加到cocos2d.pkg中。

在api目录下创建一个头文件:PkgDiscription.h

#ifndef _TEST_PROPERTY_H__

#define _TEST_PROPERTY_H__

#include "cocos2d.h"

USING_NS_CC;

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...