工作需要,上周对lua赶进度似地学习了一遍,主要参考《lua中文教程》一书,中间参考一些《lua游戏开发实践》,首先说说这两本书,后者不适合初学,里面是对一个游戏脚本系统进行粗略的介绍,lua语言本身的东西介绍的比较少,前者是比较基础的书,不过可能自己笔记愚笨,lua的环境配置折腾了半天,后面找到了lua_windows的安装版本,才解决换台电脑就满脑子的恶心。lua语言主要面向脚本,通过配置来实现系统的灵活性,现在也有很多游戏核心采用C/C++实现,逻辑部分采用lua或者其他脚本语言,因为逻辑层对游戏速度的影响可以忽略不及,但是带来的开发效率提高可能更加显著, lua的学习,这次没有做什么笔记,讲讲自己大致的讲解吧。

lua完全用c语言来实现,效率上还是有保障的,学习lua主要由一下几方面:

(1)lua语法:

数据类型:NIL,boolen,number,string , table,userdata,function

语法:循环,判断,逻辑操作:逻辑操作中and和or的不同,循环中local的使用,判断中nil类型

(2)lua表:包括表的遍历(泛型),metatable (很重要,lua类面向对象的实现,表之间操作,packages的实现都是基于该功能)

(3)lua函数:lua中函数是第一类数据类型,可以作为参数,类似于C语言的函数指针,不过使用起来很强大,注意闭包的概念

(4)lua中C-API的使用:这是lua作为脚本语言的基本,和C交互。lua和C的冲突主要集中在动与静的区别,所以对lua栈的理解是使用C-API的基础,不然真的很难折腾明白;需要理解文件加载的问题。

c语言调用lua函数的过程相对简单一些,lua调用C语言中的函数如果通过类库来实现觉得就很纠结,不过工作中中有很多方法处理这个问题,比如第三方库luabind,tolua++等。不过看书的过程中思考比较多是脚本在使用过程中对错误处理的定位问题,这方面可以参考云风的博客哈。

lua学习笔记的更多相关文章

  1. [转]LUA 学习笔记

    Lua 学习笔记 入门级 一.环境配置 方式一: 1.资源下载http://www.lua.org/download.html 2.用src中的源码创建了一个工程,注释调luac.c中main函数,生 ...

  2. Lua 学习笔记(一)

    Lua学习笔记 1.lua的优势 a.可扩张性     b.简单     c.高效率     d.和平台无关 2.注释 a.单行注释 --        b.多行注释 --[[  --]] 3.类型和 ...

  3. Lua学习笔记6:C++和Lua的相互调用

        曾经一直用C++写代码.话说近期刚换工作.项目组中的是cocos2dx-lua,各种被虐的非常慘啊有木有.     新建cocos2dx-lua项目.打开class能够发现,事实上就是C++项 ...

  4. Lua学习笔记4. coroutine协同程序和文件I/O、错误处理

    Lua学习笔记4. coroutine协同程序和文件I/O.错误处理 coroutine Lua 的协同程序coroutine和线程比较类似,有独立的堆栈.局部变量.独立的指针指令,同时又能共享全局变 ...

  5. (转)Lua学习笔记1:Windows7下使用VS2015搭建Lua开发环境

    Lua学习笔记1:Windows7下使用VS2015搭建Lua开发环境(一)注意:工程必须添加两个宏:“配置属性”/“C或C++”/“预处理器”/“预处理器定义”,添加两个宏:_CRT_SECURE_ ...

  6. Lua学习笔记:面向对象

    Lua学习笔记:面向对象 https://blog.csdn.net/liutianshx2012/article/details/41921077 Lua 中只存在表(Table)这么唯一一种数据结 ...

  7. Lua学习笔记(二):基本语法

    Lua学习指南:http://www.lua.org/manual/ 首先我们要明确的一点是:在Lua中,除了关键字外一切都是变量. Lua关键字 可以查看这个地址:http://www.lua.or ...

  8. Lua学习笔记一

    学习了有一周多了.之前一直不想献丑,但还是记录下这个过程. 第1章  开发软件搭建 1. ubuntu 下lua安装 sudo apt-get install lua5.1 2.win下的环境搭建. ...

  9. 【Lua学习笔记之:Lua环境搭建 Windows 不用 visual studio】

    Lua 环境搭建 Windows 不用 visual studio 系统环境:Win7 64bit 联系方式:yexiaopeng1992@126.com 前言: 最近需要学习Unity3d游戏中的热 ...

随机推荐

  1. ASP.NET之AreaRegistration

    ASP.NETMVC的AreaRegistration是用来干什么呢? 它是用来提供一个很好的接口让我们可以将Controller定义在其他的Library项目中,这主要可以用来解决模块化开发:一般情 ...

  2. Java Hour 31 Weather ( 4 )

    有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. Hour 31 Maven 的项目结构   Struts 2 Tags < ...

  3. jquery 展开折叠菜单

    jquery 展开折叠菜单 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <ht ...

  4. 使用ASP.NET 5开发AngularJS应用

    今天推荐的是一个系列文章,讲述了如何使用ASP.NET 5来开发AngularJS应用,一共7篇文章. 在Visual Studio 2015中由于优化了项目结构,优化了前端JS框架的引用方式,所以开 ...

  5. Effective C++笔记:设计与声明

    条款18:让接口容易被正确使用,不易被误用 1,好的接口很容易被正确使用,不容易被误用.你应该在你的所有接口中努力达成这些性质. 2,“促进正使用”的办法包括接口的一致性,以及与内置类型的行为兼容. ...

  6. TabLayout

    效果图: 标题和fragment联动效果已经封装好了,非常方便 <android.support.design.widget.TabLayout android:id="@+id/ta ...

  7. nginx查看post请求日志

    在http段加上 log_format access '$remote_addr - $remote_user [$time_local] "$request" $status $ ...

  8. 3.PopupWindow 、拍照、裁剪

    实现这样的效果 圆角图片的自定义控件直接拷进来,和com一个等级 想要弹出内容可以使用悬浮窗 layout_pupup <LinearLayout xmlns:android="htt ...

  9. 什么是C#编程语言明明白白学C#

    什么是C#编程语言明明白白学C# C#是微软公司发布的一门面向对象的编程语言.它作为一门语言,则具备语言的四个要素.并且,它符合编程语言的四个要素的特性.同时,它作为面向对象的编程语言,可以解决各种复 ...

  10. 二分+贪心 hihocoder 1249 Xiongnu's Land (15北京A)

    题目传送门 题意:有多个矩形分布在[0, 0]到[R, R]的的范围内,画一条竖线分割成两块矩形,使得左边包括矩形的面积大于等于右边的面积,在这个前提下使得画的竖线尽量远 分析:二分答案,当面积相等时 ...