《LUA游戏开发实践指南》学习笔记1
本文只做个人学习笔记!
Lua脚本语言的优点:免费、小巧、快速和易移植。
游戏项目中的Lua,可以完成以下工作
编辑游戏用户界面(玩家和你的游戏进行交互的媒介)
定义、存储和管理游戏数据(Lua本人并没有直接访问外部数据库的能力,但可以使用C++组件)
管理游戏实时事件
创建和维护开发者有好的游戏存储和载入系统
编写游戏的人工智能(AI)
创建功能原型,可以之后用高性能语言移植
Lua入门
Lua控制台
lua脚本(扩展名为.lua的文本文本)
代码块(Chunk):单个命令或者一系列命令组成脚本文件
dofile:用来立即执行脚本
“\\”代替单斜线,单斜线是用来告诉lua运行环境他后面的特殊符号
Lua基础
1优势:可以整合C++模块来扩展自身功能
2语言定义:不能以数字作为起始符,也要避免下划线(_)接大写字母
3lua保留关键字:
and | local | break | nil |
do | not | else | or |
elseif | repeat | end | return |
false | then | for | true |
function | until | if | while |
in |
4变量:变量不需要在使用前声明,类型取决人用户给它赋的值
5种变量类型:nil、Boolean、string、Number和table
nil:用来表示这个变量还没有被赋值。例如:myValue = nil
Boolean:变量只有两种true和false。例如:myValue = true
string(字符串):Lua中字符串可以小到一个字符,也可以包含百万字符以上
Number(双精度浮点数)
table(数据类型)
5局部变量和全局变量
默认是全局的
变量的有效范围取决于声明变量的位置,例:
function Myfun()
local myX = 7
if myX < 10 then
local myY = "hello world"
print(myY)
end
print(myY)
end
执行结果:
hello world
nil
运算符(特殊符号):可以让两个值得出运算结果
算术运算符:+-*/(a+b=c)
关系运算符:==、~=、<、>、<=、>=(if(a == b)特殊:table,只有两个table是同一个对象的时候才能得到预期结果)
逻辑运算符:and、or、not
and | 比较两个参数时,如果第一个是false,就返回false否则返回第二个参数值 | ||
or | 与and正好相反 | ||
not | 返回true和false,false和nil会被当成false,其它为true |
6控制结构
所有控制结构都以end作为结束标记
if:如果是true程序块就会被执行,例如:
function Myfun()
a = 7
if a<10 then
print("<10")
end
if a>5 then
print(">5")
end
end
结果:
<10
>5
while 和 repeat:都可以循环执行一段脚本(while先判断,repeat后判断(保证程序至少执行一次))
for:可以让用户根据表达式的值有限次地执行一段脚本
for index=1,10 do
print(index)
end
for后需要提供变量值范围,遍历这个范围的每个值的同时程序块被执行,end结束
break:可以从循环控制结构中强制退出
今天就总结这里吧......
小编不仅仅是只是在抄总结哦,里面的所有案例都有上机,没有案例的,也会自己写一个测试的哦,做程序猿是很累的,不要手懒哦
转载于:https://blog.51cto.com/4790276/1587127
《LUA游戏开发实践指南》学习笔记1相关推荐
- 软件管理沉思录读书笔记
第一部分 管理你的项目 质量之所以重要,是因为软件可能会使用十年.组织极少会弃用软件,而是通过提升和重新利用不断使用它.因此,对于软件质量的关注必须贯穿其整个生命周期. 第一章 交付高质量的产品 &q ...
- 设计模式沉思录 - 读书笔记(XMind)
注:后面会不定期,以XMind的方式发布一些读书笔记. 目标:书还要是越读越薄才行!
- 软件开发沉思录读书笔记
软件开发中推崇敏捷,自动化测试,减少了成本加快了速度,加快了沟通和版本之间的关系,用好的沟通来换好的软件.关于多语言开发,应该根据业务领域的不同,采用适合不同领域的编程语言,同时也要注意编程语言的跨平 ...
- 《C++ 沉思录》学习笔记——上篇
文章目录 1. 总结(31-32) 1.1 通过复杂性获取简单性(31) 1.1.1 类库和语言语义 1.1.2 抽象和接口 1.2 说了 Hello world 后再做什么(32) 2. 技术(27 ...
- 《C++沉思录》学习笔记1
文章目录 前言 一.类 二.改进,实现关闭跟踪输出的功能 三.改进,实现跟踪输出到不同设备的功能 四.不用类来实现上述功能 C++优秀的面向对象的核心本质 参考资料 前言 作为高级语言,C已经很强大了 ...
- 《C++沉思录》读书笔记
<C++沉思录>读书笔记 序幕 动机 第1章 为什么我用C++ 第2章 为什么用C++工作 第3章 生活在现实世界中 类与继承 第4章 类设计者的核查表 第5章 代理类 第6章 句柄:第一 ...
- Android学习笔记---22_访问通信录中的联系人和添加联系人,使用事物添加联系人...
Android学习笔记---22_访问通信录中的联系人和添加联系
- FFmpeg基础到工程-多路H265监控录放开发学习笔记
多路H265监控录放开发学习笔记 课程涉及:FFmpeg,WebRTC,SRS,Nginx,Darwin,Live555,等.包括:音视频.流媒体.直播.Android.视频监控28181.等. 具体 ...
- 【小猫爪】AUTOSAR学习笔记00-目录
[小猫爪]AUTOSAR学习笔记00-目录 因为一个偶然的机会让我接触到了AUTOSAR,所以就花一点小小的时间来记录一下学习它的坎坷大道.这其中复制粘贴了很多,也包括了我的一些个人的小小见解和废 ...
- 读书笔记∣概率论沉思录 01
概率的解释基础分为两种,一是物理世界本身存在的随机性(客观概率),二是是我们由于信息不足而对事件发生可能性的度量(主观概率).基于此,形成了概率论的两大学派:频率论学派(传统数理统计学)和贝叶斯统计学 ...
最新文章
- git或者ssh出错 fatal:open /dev/null or dup failed: No such file or directory、弹出mitty.dump文件
- python 删除字符串中空格
- trunc 文字与格式与字符串不符_EXCEL字符串中间数字提取进阶
- Netty原理二:NioEventLoop 如何启动监听事件
- chrome自动提交文件_实用!8个 chrome插件玩转GitHub,单个文件下载小意思
- android 多个占位符,Android中占位符的使用
- 如何隐藏 video 元素的下载按钮
- mysql 5.7.4 m14_win7 64位下如何安装配置mysql-5.7.4-m14-winx64(安装记录)
- ambiguous reference to overloaded definition(scala与java重载逻辑不匹配)
- jquery java aes_[代码全屏查看]-java、js之间使用AES加密通信数据
- 事务复制5: Transaction and Command
- 人人都能学会的python编程教程12:函数的参数
- 使用OBS做无延时/低延迟直播(实测)
- Kindle退市,掌阅iReader或将接过电纸书市场大旗
- 硬盘出现“文件或目录损坏且无法读取”的故障,怎么解决?
- 匈牙利算法(简单易懂)
- 炉石传说 酒馆战棋 战斗模拟的实现
- windows命令行下schtasks创建定期任务
- 《中国合伙人》:致我们即将逝去的青春
- Macbook Pro(M1芯片)腾讯会议无法使用共享屏幕功能
热门文章
- 【Java】@transient代表着什么
- python概率论_概率论中常见分布总结以及python的scipy库使用
- linux 安装 中文输入法,[linux]安装中文输入法
- 机器学习方向企业面试题(一)
- 宝可梦世界无限极可以玩服务器吗,口袋妖怪世界无极限运行库
- html元素自己属性代码,jQuery如何操作HTML的元素和属性?(代码详解例)
- 一阶系统开环传递函数表达式_自控原理之系统辨识--入门介绍
- php对键盘控制,键盘控制 - 陈映亮的个人空间 - OSCHINA - 中文开源技术交流社区...
- python输出变量的值使用_Python捕获任何异常,并使用变量值打印或记录回溯
- jquery的语法结构包括哪几部分?_牙釉质的组织学结构具体包括哪几部分