lua学习笔记
工作需要,上周对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学习笔记的更多相关文章
- [转]LUA 学习笔记
Lua 学习笔记 入门级 一.环境配置 方式一: 1.资源下载http://www.lua.org/download.html 2.用src中的源码创建了一个工程,注释调luac.c中main函数,生 ...
- Lua 学习笔记(一)
Lua学习笔记 1.lua的优势 a.可扩张性 b.简单 c.高效率 d.和平台无关 2.注释 a.单行注释 -- b.多行注释 --[[ --]] 3.类型和 ...
- Lua学习笔记6:C++和Lua的相互调用
曾经一直用C++写代码.话说近期刚换工作.项目组中的是cocos2dx-lua,各种被虐的非常慘啊有木有. 新建cocos2dx-lua项目.打开class能够发现,事实上就是C++项 ...
- Lua学习笔记4. coroutine协同程序和文件I/O、错误处理
Lua学习笔记4. coroutine协同程序和文件I/O.错误处理 coroutine Lua 的协同程序coroutine和线程比较类似,有独立的堆栈.局部变量.独立的指针指令,同时又能共享全局变 ...
- (转)Lua学习笔记1:Windows7下使用VS2015搭建Lua开发环境
Lua学习笔记1:Windows7下使用VS2015搭建Lua开发环境(一)注意:工程必须添加两个宏:“配置属性”/“C或C++”/“预处理器”/“预处理器定义”,添加两个宏:_CRT_SECURE_ ...
- Lua学习笔记:面向对象
Lua学习笔记:面向对象 https://blog.csdn.net/liutianshx2012/article/details/41921077 Lua 中只存在表(Table)这么唯一一种数据结 ...
- Lua学习笔记(二):基本语法
Lua学习指南:http://www.lua.org/manual/ 首先我们要明确的一点是:在Lua中,除了关键字外一切都是变量. Lua关键字 可以查看这个地址:http://www.lua.or ...
- Lua学习笔记一
学习了有一周多了.之前一直不想献丑,但还是记录下这个过程. 第1章 开发软件搭建 1. ubuntu 下lua安装 sudo apt-get install lua5.1 2.win下的环境搭建. ...
- 【Lua学习笔记之:Lua环境搭建 Windows 不用 visual studio】
Lua 环境搭建 Windows 不用 visual studio 系统环境:Win7 64bit 联系方式:yexiaopeng1992@126.com 前言: 最近需要学习Unity3d游戏中的热 ...
随机推荐
- SELECT的解析顺序及慢查询优化
标准的 SQL 的解析顺序为:(1)FROM 子句, 组装来自不同数据源的数据(2)WHERE 子句, 基于指定的条件对记录进行筛选(3)GROUP BY 子句, 将数据划分为多个分组(4)使用聚合函 ...
- CC2540开发板学习笔记(二)——按键
一.实验内容 用按键S1控制LED1的亮和灭 二.实验过程 1.电路原理: 可以看出,当S按下P0.0和P0.1接地,反之则接高电压. 2.寄存器使用: 依旧应该首先进行3个基本寄存器的设定,对LED ...
- 桌面窗体应用程序,FormClosing事件
private void Form1_FormClosing(object sender, FormClosingEventArgs e) { //主窗体关闭时,弹出对话框.判断对话框的返回值(即用户 ...
- Ajax 学习之动态获取,返回服务器的值
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- 2016.6.17 kali Linux 隧道工具
隧道工具的基本概念: 1.在计算机网络中,隧道工具是指使用一种网络协议去封装另一种网络协议的技术. 2.通常用来数据伪装或者穿越防火墙,在入侵目标系统后,可用来提升权限和权限维持. Kali中的隧道工 ...
- DP VK Cup 2012 Qualification Round D. Palindrome pairs
题目地址:http://blog.csdn.net/shiyuankongbu/article/details/10004443 /* 题意:在i前面找回文子串,在i后面找回文子串相互配对,问有几对 ...
- Quartz.Net 配置模板范例
1.App.config <?xml version="1.0" encoding="utf-8"?> <configuration& ...
- 20130617 hbase regionserver 老挂掉
hbase regionserver 老挂掉: 添加如下: <property><name>hbase.regionserver.restart.on.zk.expire< ...
- 【BZOJ】1834: [ZJOI2010]network 网络扩容(最大流+费用流)
http://www.lydsy.com/JudgeOnline/problem.php?id=1834 我又思考人生了T_T,nd的数组开小了,一直wa,调了一个小时才发现啊!!!!!我一直以为我的 ...
- 【BZOJ】1901: Zju2112 Dynamic Rankings(区间第k小+树套树)
http://www.lydsy.com/JudgeOnline/problem.php?id=1901 这题调了我相当长的时间,1wa1a,我是第一次写树套树,这个是树状数组套splay,在每个区间 ...