- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 第四单元我们的生活空间 单元教学课件 2025北师版数学三年级上册.pptx
- NB_T 20006.5-2021 压水堆核电厂用合金钢 第5部分:反应堆压力容器封头用锰-镍-钼钢锻件.docx VIP
- 肾衰竭并发症(急性左心衰竭)的临床表现、处理与护理.pptx VIP
- 双诺希胶囊2定稿).ppt VIP
- 【低空经济】无人机防反制系统设计方案.pdf
- 2025年甾体激素原料药行业分析报告及未来五到十年行业发展趋势报告.docx
- 《中医经络面部美容》课件.ppt VIP
- 2025智算中心行业研究报告.pdf VIP
- (2025秋新版)人教版三年级数学上册《观察物体》PPT课件.pptx VIP
- 油料配送操作规程.docx VIP
文档评论(0)