cocos lua学习笔记

cocos lua学习笔记,第1张

概述现在学习的时候用的是cocos3.7 + ide1.2 在lua里面,c++的方法和类基本上都在cc.和ccs. ccui.里面,可尝试cc.Sprite,ccs.GUIReader,ccui.Button 加载ui: local widget = cc.CSLoader:createNode("AttributePanel.csb") 绑定c方法到lua,给lua调用: lua_register

现在学习的时候用的是cocos3.7 + IDe1.2


在lua里面,c++的方法和类基本上都在cc.和ccs. ccui.里面,可尝试cc.Sprite,ccs.GUIReader,ccui.button


加载ui:

local Widget = cc.csloader:createNode("AttributePanel.csb")


绑定c方法到lua,给lua调用:


lua_register(L,"cocoslog",cocoslog);//绑定


但是说绑定的c方法必须按一定格式来写,参考下面

这里用了静态方法

static int LuaBrIDge::cocoslog(lua_State* L)
{
cocos2d::log(lua_tostring(L,1));
return 0;
}


必须有返回值且返回什为int类型,参数列表里只有一个参数,如上

然后,你在lua里面就可以这么调用 了:

cocoslog("test out")


c调用lua方法:


比如我有以下lua文件:

test.lua


function testfunc(param1,param2)

local oustring = string.format("txt out:%d--%s",param1,param2:getname())
cocoslog(outstring)

end

注意这里是一个全局方法,其实cocos已经帮我们做好了一些东西,首先你要做的是先执行这个文件,目的是让这个方法进入全局变量

可以这样执行:

LuaEngine::getInstance()->executeScriptfile("test.lua");

完了之后你就可以调用了,怎么调,看下面:

lua_getglobal(LuaEngine::getInstance()->getStack()->getLuaState(),"testfunc");//选取方法

LuaEngine::getInstance()->getStack()->pushnumber(20);

LuaEngine::getInstance()->getStack()->pushobject(this,"cc.Node");

lua_call(LuaEngine::getInstance()->getStack()->getLuaState(),2,0);//这里第二个参数是传给lua的参数有几个,第三个是lua返回几个参数

然后你就可以看到打钱出:txt out:20--[结点的名字]


lua类的构造顺序:

取得原先实例之后先调用create方法,此方法后会调用new()方法,new()方法里会调用ctor()方法,ctor方法我们可以自己重写


cocos lua定义新的全局变量:

由于cocos lua框架限制了直接定义全局变量的方法,所以要用其它方法,

这里cocos lua已有提供:


cc.exports.myglobal = "hello"

这名之后你就可以直接访问了:

print(myglobal)--->输出:hello


访问lua的table


假如lua里面有如下全局table

mytable = {

param1 = 52,

param2 = "abc"

}


那么在c里面可以这样访问:


lua_getglobal(L,"mytable");

lua_getfIEld(L,-1,"param1");

float p1 = lua_tonumber(L,-1);

lua_getfIEld(L,-2,"param2");//这里因为上一次的getfIEld进了一次栈,所以mytable到了-2的位置

string str = lua_tostring(L,-1)

总结

以上是内存溢出为你收集整理的cocos lua学习笔记全部内容,希望文章能够帮你解决cocos lua学习笔记所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1069683.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存