cocos3.2 tolua报错求助

 我来答
蒙MengNum1
2016-04-12 · TA获得超过2494个赞
知道大有可为答主
回答量:3004
采纳率:87%
帮助的人:859万
展开全部
使用cocos2dx-lua开发,免不了自己定义类,但是如何使用自定义的类的?
先了解下lua如何调用c++的:
lua脚本代码->通过coocs2dx中间解析层代码->将其转换并调用cocos2dx c++的前端代码
coocs2dx中间解析层代码都在libs/lua/cocos2dx_support/LuaCocos2d.cpp 这个文件中,想了解的可以自己去看下这个文件。
也就是说,你自己定义了一个类,lua能够调用你自己定义的类,你的自定义类就必须在LuaCocos2d.cpp这个中间解析文件中申明。
看了LuaCocos2d.cpp这个文件,可能有的同学都晕了,不知道怎么在LuaCocos2d.cpp中申明自己的定义的类。不过,不用担心,cocos2dx已经提供了tolua++这个工具自动编译生成新的LuaCocos2d.cpp文件。
下面开始进入正题。
一、创建一个coocs2dx-lua 的Demo工程,然后在class中自己定义个类。
SNSprite.h
[/cpp]
//
// SNSprite.h
// LuaDemo
//
// Created by LiuYanghui on 13-4-8.
//
//
#ifndef __LuaDemo__SNSprite__
#define __LuaDemo__SNSprite__
#include “cocos2d.h”
USING_NS_CC;
class SNSprite : public CCSprite{
public:
static SNSprite* create(const char* name);
private:
void initData();
};
#endif /* defined(__LuaDemo__SNSprite__) */
[/cpp]
SNSprite.cpp

C++

local function createSunnyLayer()
local layerSunny = CCLayer:create()

local labTips = CCLabelTTF:create("这个icon图标就是使用的自定义类", "Arial", 18)
labTips:setPosition(ccp(240,280))
layerSunny:addChild(labTips)

local sp = SNSprite:create("Icon.png")
sp:setPosition(ccp(100,100))
layerSunny:addChild(sp)

return layerSunny
end
-- play background music, preload effec t

添加到scene中:

C++

-- run
local sceneGame = CCScene:create() -- 创建场景
--sceneGame:addChild(createLayerFarm()) -- 将农场层加入场景
--sceneGame:addChild(createLayerMenu()) -- 将菜单界面层加入场景
sceneGame:addChild(createSunnyLayer())
CCDirector:sharedDirector():runWithScene(sceneGame)

OK,xcode编译运行,就看到效果了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式