工作需要,上周对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. Oracle 性能查看

    http://blog.chinaunix.net/uid-20784775-id-373968.html

  2. hdu 5188 dfs+二分

    get了很多新技能 当时想到了用dfs,但是排序用的是限制时间排序,一直没搞出来. 正解: 二分用时,dfs判断,为了顺利进行做题,需要按照做题开始时间排序 还可以用dp 题意: 作为史上最强的刷子之 ...

  3. 一个快速、高效的Levenshtein算法实现

    转自:http://www.cnblogs.com/ymind/archive/2012/03/27/fast-memory-efficient-Levenshtein-algorithm.html ...

  4. Android ActionBar 一步一步分析 (转)

    原文摘自:http://blog.csdn.net/android2me/article/details/8874846 1.Action Bar 介绍 我们能在应用中看见的actionbar一般就是 ...

  5. PHP文件处理类

    /** * 文件读写类 * 读取时,支持跳过N个/行字符然后再读取M个/行字符 * 支持每次读取时使用回调函数 * * 示例: * $file = new File('a.txt', 'r'); * ...

  6. java连接hiveserver2

    public class App { private static String driverName = "org.apache.hive.jdbc.HiveDriver"; p ...

  7. 登录Cloudera Manager时报错org.hibernate.exception.GenericJDBCException: Could not open connection

    去Cloudera Server上边看了一下日志: cat /opt/cloudera-manager/log/cloudera-scm-server/cloudera-scm-server.log ...

  8. Myeclipse 60.激活

    Myeclipse 用来开发java web应用是十分的方便的,不过如果没有激活的话,用起来感觉会非常不爽. 当然,个人来说还是非常支持正版的,也鼓励大家支持正版. 好了,下面介绍一下怎么破解Myec ...

  9. Sql Server 里的向上取整、向下取整、四舍五入取整

    ==================================================== [四舍五入取整截取] select round(54.56,0) ============== ...

  10. 水题 ZOJ 3869 Ace of Aces

    题目传送门 水题,找出出现次数最多的数字,若多个输出Nobody //#include <bits/stdc++.h> //using namespace std; #include &l ...