上一页 1 ··· 34 35 36 37 38 39 40 41 42 ··· 47 下一页

2015年1月27日

C++与Lua交互(三)

摘要: 现在让我们再深入一点,去探索一下如何调用lua的函数、表。Lua与宿主通讯的关键——栈lua是个动态脚本语言,它的数据类型如何映射到C++这种静态类型语言中?lua是有GC机制的,这与C++手动管理内存相悖。如何解决这些问题呢?lua用一个抽象的栈与宿主语言交互,栈中的每一条记录都可以保存lua值。... 阅读全文

posted @ 2015-01-27 14:40 &大飞 阅读(204) 评论(0) 推荐(0)

C++与Lua交互(二)

摘要: 现在,我们一起探索一下如何将lua寄宿到C++中。宿主的实现我们在LuaWithCPPTest项目下,查看Source.cpp代码如下:#include #include #include using namespace std;extern "C"{ #include #includ... 阅读全文

posted @ 2015-01-27 14:39 &大飞 阅读(358) 评论(0) 推荐(0)

C++与Lua交互(一)

摘要: 引言之前做手游项目时,客户端用lua做脚本,基本所有游戏逻辑都用它完成,玩起来有点不爽,感觉“太重”了。而我又比较偏服务端这边(仅有C++),所以热情不高。最近,加入了一个端游项目,客户端和服务器都用了lua,各种玩法是让我眼界大开。在此,写下自己的心得与体会,希望能与大家共同探讨进步。环境搭建lu... 阅读全文

posted @ 2015-01-27 14:38 &大飞 阅读(295) 评论(0) 推荐(0)

Lua 中写 C 扩展库时用到的一些技巧

摘要: Lua 中写 C 扩展库时用到的一些技巧(转)通常,C 扩展库中 C 代码会有一些数据要放在 lua 状态机中。Lua 提供的方案是放在它的注册表中。如文档所言,因为 Lua 的注册表是全局共享的,选择 key 的时候就要千万小心了。整数 key 已经被 reference 系统用掉了,一般我们会采... 阅读全文

posted @ 2015-01-27 13:32 &大飞 阅读(403) 评论(0) 推荐(0)

C语言union关键字

摘要: union 关键字的用法与struct 的用法非常类似。union 维护足够的空间来置放多个数据成员中的“一种”,而不是为每一个数据成员配置空间,在union 中所有的数据成员共用一个空间,同一时间只能储存其中一个数据成员,所有的数据成员具有相同的起始地址。例子如下:union StateMachi... 阅读全文

posted @ 2015-01-27 13:05 &大飞 阅读(163) 评论(0) 推荐(0)

Lua的C++封装

摘要: 前段时间由于公司项目需要,做了LUA的C++封装,为此看了LuaPlus(感觉过于庞大,挺混乱的..)跟LuaTinker(一个韩国人写的,只有两个代码文件,实现了大多数需要的功能)的代码,在实现LUA与C++的交互中最重要的功能莫过于实现在LUA中注册任意类型的C++函数和类,现将自己所得到的一些... 阅读全文

posted @ 2015-01-27 12:46 &大飞 阅读(696) 评论(0) 推荐(0)

2015年1月24日

Lua中的模块与包

摘要: 前言从Lua5.1版本开始,就对模块和包添加了新的支持,可是使用require和module来定义和使用模块和包。require用于使用模块,module用于创建模块。简单的说,一个模块就是一个程序库,可以通过require来加载。然后便得到了一个全局变量,表示一个table。这个table就像是一... 阅读全文

posted @ 2015-01-24 16:24 &大飞 阅读(342) 评论(0) 推荐(0)

2015年1月23日

Protocol Buffer技术详解(语言规范)

摘要: 该系列Blog的内容主体主要源自于Protocol Buffer的官方文档,而代码示例则抽取于当前正在开发的一个公司内部项目的Demo。这样做的目的主要在于不仅可以保持Google文档的良好风格和系统性,同时再结合一些比较实用和通用的用例,这样就更加便于公司内部的培训,以及和广大网友的技术交流。需... 阅读全文

posted @ 2015-01-23 03:57 &大飞 阅读(181) 评论(0) 推荐(0)

2015年1月22日

protobuf-2.5.0 报package directory 'google/protobuf/compiler' does not exist 解决办法

摘要: 执行python setup.py install 时报错:error: package directory 'google/protobuf/compiler' does not exist解决办法:在google/protobuf/下创建compiler文件夹再次在protobuf文件夹下运行:... 阅读全文

posted @ 2015-01-22 12:25 &大飞 阅读(2275) 评论(0) 推荐(0)

用protoc-gen-lua生成PB的lua代码

摘要: 所需文件安装包:python-2.7.2.msipython安装程序 http://www.python.org/getit/LuaForWindows_v5.1.4-45.exelfw安装程序 http://code.google.com/p/luaforwindows/downloads/lis... 阅读全文

posted @ 2015-01-22 10:40 &大飞 阅读(895) 评论(0) 推荐(0)

2015年1月21日

Unity中的世界坐标和NGUI中的坐标的相互转换

摘要: 1、将Unity中的世界坐标转换成NGUI中的坐标,代码如下所示: publicGameObject TargetObject; //目标物体 publicCamera worldcamera; //世界相机。publicCamera guiCamera; //UI相机// Use this f... 阅读全文

posted @ 2015-01-21 21:43 &大飞 阅读(915) 评论(0) 推荐(0)

2015年1月20日

共享 lua state 中的数据

摘要: 今天和倩女幽魂的同事讨论一个问题:他们的游戏 client 中,有大量策划填写的表格直接导入 lua state 中的大量数据。大约有 100M 以上。这样,如果玩家在一台机器上启动多个 client ,就会占用大量的内存。而这些数据,一旦加载进 lua ,就不会再修改,且每个 client 中数据... 阅读全文

posted @ 2015-01-20 14:13 &大飞 阅读(533) 评论(0) 推荐(0)

Lua数据结构 — lua_State(六)

摘要: 作者:罗日健前面各种Lua的数据类型基本都说得差不多了,剩下最后一个数据类型:lua_State,我们可以认为是”脚本上下文”,主要是包括当前脚本环境的运行状态信息,还会有gc相关的信息。Lua这门语言考虑了多线程的情况,在脚本空间中能够开多个线程相关脚本上下文,而大家会共用一个全局脚本状态数据,如... 阅读全文

posted @ 2015-01-20 01:34 &大飞 阅读(7937) 评论(0) 推荐(0)

Lua数据结构 — Udata(五)

摘要: 作者:罗日健Udata负责存储userdata的数据,这部分其实很简单,但是为了保证系列文章的完整性,还是写一篇出来补全。下面是Udata的数据结构:意义:CommonHeader:和与TValue中的GCHeader能对应起来的部分metatable:userdata的元表,和table的元表一样... 阅读全文

posted @ 2015-01-20 01:33 &大飞 阅读(814) 评论(0) 推荐(0)

Lua数据结构 — 闭包(四)

摘要: 作者:罗日健前面几篇文章已经说明了Lua里面很常用的几个数据结构,这次要分享的也是常用的数据结构之一 –函数的结构。函数在Lua里也是一种变量,但是它却很特殊,能存储执行语句和被执行,本章主要描述Lua是怎么实现这种函数的。在脚本世界里,相信闭包这个词大家也不陌生,闭包是由函数与其相关引用环境组成的... 阅读全文

posted @ 2015-01-20 01:31 &大飞 阅读(538) 评论(0) 推荐(0)

Lua数据结构 — Table(三)

摘要: 作者: 罗日健前面(一)、(二)里面其实已经把一些常用的数据类型(数值、布尔、字符串)说明了,这次要描述的是Table,Table在Lua里是一种常用的数据类型,是Lua里的精髓之一,其效率必须得到保证,而实现这种支持任意类型key和value的Table也是较为复杂的。一, Table的设计思想:... 阅读全文

posted @ 2015-01-20 01:30 &大飞 阅读(2625) 评论(0) 推荐(0)

Lua数据结构 — TString(二)

摘要: 作者:罗日健存储lua里面的字符串的TString数据结构:(lobject.h 196-207)其它结构中也会有L_Umaxalign dummy这个东西,来看看L_Umaxaliagn:从字面意思上就是保证内存能与最大长度的类型进行对齐,事实上也是做这件事,这里感觉lua想给各种不同设备做一种嵌... 阅读全文

posted @ 2015-01-20 01:29 &大飞 阅读(704) 评论(0) 推荐(0)

Lua数据结构 — TValue(一)

摘要: 作者:罗日健数据结构的设计,在一定程度上奠定了整个系统的设计,所以决定写一个对Lua主要数据结构的分析文章,本来打算写一篇就好了,但是每个数据类型其实都有点复杂,一篇的话篇幅太长,所以就拆开几篇来写了。为什么是从TValue说起,TValue是实现Lua弱数据类型的主要数据结构,不但在脚本中的值使用... 阅读全文

posted @ 2015-01-20 01:28 &大飞 阅读(833) 评论(0) 推荐(0)

Step By Step(Lua数据结构)

摘要: Lua中的table不是一种简单的数据结构,它可以作为其它数据结构的基础。如数组、记录、线性表、队列和集合等,在Lua中都可以通过table来表示。 1. 数组: 使用整数来索引table即可在Lua中实现数组。因此,Lua中的数组没有固定的大小,如: a = {} for i = 1, 100... 阅读全文

posted @ 2015-01-20 01:08 &大飞 阅读(262) 评论(0) 推荐(0)

2015年1月19日

NGUI动态添加

摘要: 1 动态添加sprite因为暂时未解决在脚本中动态指定atlas,所以,目前动态添加的sprite需要手动指定 public UIAtlas at; // Use this for initialization void Start () { test(); }... 阅读全文

posted @ 2015-01-19 11:21 &大飞 阅读(203) 评论(0) 推荐(0)

上一页 1 ··· 34 35 36 37 38 39 40 41 42 ··· 47 下一页

导航