Lua与网络游戏.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Lua与网络游戏

Lua访问C++ 实例 将C函数包装成Lua可使用的函数类型 lua_Cfunction 注册包装好的函数到Lua的表中 像使用普通的Lua函数那样使用注册函数 void PrintHelloWorld(){ printf(“hello,world”); } Int AddSum( int a, int b ){ return a + b; } 包装成Lua可访问的函数类型 (从普通的C函数 包装成Lua可访问的Int (lua_Cfunction*)(lua_state*)型函数) Static int l_PrintHelloWorld(lua_state* L){ PrintHelloWorld(); } Static int l_AddSum(lua_state* L){ int b = lua_tonumber(L,-1); int a = lua_tonumber(L,-2); int sum = a +b; lua_pushnumber(L,sum);--将返回值压入堆栈 return 1; --有返回值,要告诉解释器,函数向堆栈压入了几个返回值 } 将包装函数注册到Lua中( lua中定义的变量和函数存放在一个全局table中) lua_pushcfunction(L, l_PrintHelloWorld); Lua_setglobal(L,”PrintHelloWorld”);//global[“PrintHelloWorld”] = l_PrintHelloWorld Lua_pushcfunction(L, l_AddSum); Lua_setglobal(L,”AddSum”);//global[“AddSum”] = l_AddSum Test.lua中使用 PrintHelloWorld(); AddSum(3,5); THANK YOU! Q A Lua与网络游戏 管传淇 Lua与现在的游戏 现在有哪些游戏用Lua 暴雪 魔兽世界 UBI 孤岛惊魂(Far Cry) 网易 大话系列 完美 神鬼传奇,降龙之剑 金山 剑网3 畅游 天龙八部 巨人 征途,巨人 主要运用在哪些方面 UI插件 客户端的图像控制 任务系统 AI系统 伤害计算 Lua的特点 Lua在这脚本语言中是运行时速度最快而且占内在最少的。 集成Lua只会增加极少的内存占用率 Lua容易地通过C/C++ 集成在软件里 快,轻巧 表达式 算法运算符: ?二元运算符:+-*/^ (加减乘除幂) 一元运算符: -(负值) 关系运算符: ? ? ? ? ?= ? = ? ?== ? ? ?~=? 逻辑运算符: ?and ? or not 连接运算符: ?.. Lua的基本语法 基本类型 nil 一个变量没赋值前默认值是nil,给变量赋nil可以删除该变量,相当于C++中的Null boolean ?只有false和nil为假,其他值都为真  number 数值型, 相当于int,long,short,double等 string 用法a ?aa , function ? function(a,b) return a + b end thread 线程,协同函数 table ? ? ? {1,2,3,4} ? {x=2, y=3} userdata 用户数据 允许Lua变量存储定制的 C++数据 Lua中唯一的数据结构:Table Lua的tables实现了类似Python里面Tuple的功能, 不仅可以通过数字下标检索数据,还可以通过别的类型的值检索数据。 Lua中除了nil以外的类型都可以作为tables的索引下标. tables没有固定的大小,你可以根据需要动态的调整他的大小. tables是Lua主要的也是唯一的数据结构, 可以通过他实现传统数组, 符号表, 集合,??队列,以及其他的数据结构 Table实例 a = {} a[“x”] = 10 a[20] = great“ myPolygon = {   color=“blue”,   thickness=2,   npoints=4;   {x=0,y=0},   {x=-10, y=0},   {x=-5,y=4},   {x=0,y=4} } Lua中的函数 Function 函数名(参数1,参数2) 函数体 End 函数名 = Function(参数1,参数2) 函数体 End E

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档