lua
文章平均质量分 81
keep_moving_cqu
每天晚上疲劳的睡在床上时才感觉真真切切地过了一天人生最重要的不仅是努力还有方向压力不是有人比你努力而是比你牛叉几倍的人依然比你努力即使看不到未来即使看不到希望也依然相信自己错不了自己选的人生错不了第二天叫醒我的不是闹钟其实还是梦想
展开
-
lua_next函数分析
lua_next(L,index):先把 表(lua栈 index所指的表), 的当前索引弹出,再把table 当前索引的值弹出,也就是先弹出 table的索引,再弹出table索引的值简单一个例子:NUMBER_TABLE_WITH_INDEX ={["a"] = 1,["b"] = 2,["c"] = 3} lua_getglobal(L,"STRING_TABLE_WI转载 2015-08-16 15:54:07 · 13596 阅读 · 2 评论 -
Lua的debug.traceback
新的traceback:local function toStringEx(v , len) if len == nil then len = 0; end local pre = string.rep('\t',len); local ret = ""; if type(v) == "table" then if len转载 2016-04-21 17:31:32 · 13426 阅读 · 0 评论 -
lua C++对象内存管理
1:tolua++如何管理对象的生命周期一般情况下,当lua里对c++对象的引用变量可以被垃圾回收时,tolua++只是简单的释放userdata占用的4字节指针地址内存。但是也可以通过绑定或者代码指定的方式,让tolua++真正释放对象所占内存。绑定的方式,是指在将c++类型构造函数使用tolua++导出到lua里时,tolua++会自动生成new_local方法。如果在lua代转载 2016-04-19 16:52:09 · 3172 阅读 · 0 评论 -
lua笔记
1.lua_gettablevoid lua_gettable (lua_State *L, int index);把t[k] 值压入堆栈,这里的 t 是指有效索引 index 指向的值,而 k 则是栈顶放的值。这个函数会弹出堆栈上的 key,把结果放在栈上相同位置。下面举个例子:// 将一个key放到栈顶,这个key为1。如果你的key是字符串,那就用lua_push转载 2016-03-10 09:30:55 · 3148 阅读 · 0 评论 -
【Lua】windows下安装和使用LuaJIT步骤
1.准备1) 下载LuaJIT源代码2) 确保你的机器上安装了visual studio2.编译1) 打开visual studio,依次打开 “工具” >> “visual studio 命令提示”窗口2) 在命令窗口输入“cd /d \src”切到源代码目录下(是你下载的LuaJIT源代码所在的路径);再输入命令“msvcbuild”开始编译。如转载 2016-05-11 10:38:16 · 11039 阅读 · 2 评论 -
cocos2d tolua C++对象使用lua对象的变量,函数
C++对象绑定到lua通常是创建一个userdata用来存放cpp对象。在tolua库中维护了一张表:tolua_ubox表,它是个弱表,用来缓存所有cppobj的ptr->userdata映射。userdata对象的生成过程和cpp对象到userdata的映射的生成。void tolua_pushusertype_internal (lua_State* L, void* value原创 2016-03-13 20:07:58 · 2316 阅读 · 0 评论 -
Lua注册回调到C++
思路像所有语言一样,绑定回调主要是执行的任务执行到特定情形的时候,调用对用回调方法。 本文也一样,Lua注册回调到C++的核心思路是,当C代码执行到特定特定情形的时候,调用Lua的方法。我这里使用的是用lua_stack直接调用lua的方法,没有使用Cocos2d-x封装的那个dispatcher,因为熟悉那个格式太墨迹了。主要步骤如下转载 2015-11-26 22:12:00 · 2007 阅读 · 0 评论 -
tolua++的一些api的
1:static void mapsuper (lua_State* L, const char* name, const char* base) 作用:将base设置成name的基类,并且将base的全部父类也设置成name的基类实现方式:只要将在name的metatable有base这个key,那么base就是name的基类源代码和分析:static void mapsuper原创 2015-08-19 20:22:55 · 4138 阅读 · 0 评论 -
cocos2d lua绑定感悟---像cc.Sprite,cc.Director这些是如何识别的
其实自从打开GameScene.lua文件以来,我一直都很想搞清楚的一个问题就是cc.Sprite这些是如何识别的。其实第一反应肯定就是:它肯定是一个全局变量,要不然怎么调用create方法呢。先不考究cocos的C++类方法是如何绑定到lua的,我就是想知道这个全局变量是什么时候注册的?知道一点lua知识的都知道 lua里面的全局变量会保存到一个全局表_G中去,问题就转换为了 什么时候向_G原创 2015-08-19 19:58:02 · 3817 阅读 · 0 评论 -
cocos lua 绑定感悟---各种表
1:tolua_supertolua_super存在于注册表中,其中记录了各种类型的父类,key是类型的table,value是也是个的表,v_key是父类的名字,value是1。在判断类型的时候,这个非常有用。2:tolua_ubox在注册表中和每种类型的表中都存在这样一张表,注册表是在 toluafix_open 中初始化的,而每种类型的tolua_ubox表示在该注册该类型的时候原创 2015-08-19 19:45:29 · 1980 阅读 · 0 评论 -
cocos lua绑定感悟---tolua_isusertable及lua如何访问cocos静态函数的方法
现在还是个新手,对很多还不是很了解,所以语言估计会有点晦涩,望原谅啊!!TOLUA_API int tolua_isusertable (lua_State* L, int lo, const char* type, int def, tolua_Error* err){ if (def && lua_gettop(L)<abs(lo)) return 1;原创 2015-08-19 17:19:44 · 2183 阅读 · 0 评论 -
cocos 给绑定类加一个命名空间
本来以为很简单的,妈的,碰到一大堆的坑。记录一下步骤:1:给.h和.cpp加上命名空间。#pragma once#include "cocos2d.h"USING_NS_CC;namespace GameLogic{ class MyClass : public Ref { public: MyClass(void); ~MyClass(void); bool原创 2015-08-18 12:13:29 · 2388 阅读 · 0 评论 -
cocos 绑定到lua时指定命名空间 程序崩溃
引用:http://www.cocoachina.com/bbs/read.php?tid=226362--------------------------------------------------------------------------------一、bindings-generator当有一些感觉狂拽炫酷屌的 C or C++ 函数库想加到专案里时,难免会用上转载 2015-08-17 21:10:40 · 1888 阅读 · 0 评论 -
cocos自定义类 绑定到lua
1:按照\frameworks\cocos2d-x\tools\tolua下的README.mdown的指示一步一步做下去。务必要和文件中描述的一样,我已经被这个坑爹的东西坑的很惨了。(检查这个有没有配置好的方法是:运行下那个genbindings.py,看是否能生成liblua的auto目录下的那些文件。如果能,那么你的环境配置就成功了。)2:写一个自定义的C++类例子:#pragm原创 2015-08-17 15:51:05 · 1422 阅读 · 0 评论 -
lua内存检测
由于目前正在负责的项目是一个二次开发项目,而且留给我们的代码质量实在让人无力吐槽,所以遇到了不少大大小小的坑,好在慢慢都淌过去了。最近就遇到了一个内存泄漏的问题,泄漏发生在lua里,项目代码里以前的开发团队留下了检测泄漏的代码,但也仅限于此。由于代码量庞大,所以想从逻辑上梳理清楚哪里的引用没干掉导致了内存泄漏几乎就是大海捞针。好在解决的过程比较顺利,这篇文章就来谈一谈Lua中如何解决内存泄漏的问题。转载 2016-10-08 20:54:53 · 2495 阅读 · 0 评论