《Lua游戏开发实践指南》学习笔记2

深入学习Lua

一、函数

函数是划分游戏脚本的主要工具。

函数以function关键字开始,后面是函数名然后是参数列表,end关键字结尾

单一参数的例子

function SetName(myString

print(" ")

print("Your name is :",myString)

print(" ")

end

"myString"传递给了函数,并在函数中使用,函数中的参数是局部变量,调用结束后被回收

Lua可以定义不定长的参数列表,使用(...)代替参数列表,Lua会创建一个局部的名字为arg的table,保存所有调用时参数,以及参数个数(通过arg.n获取)

function HowMany(...)

...

end

返回值

函数使用return关键字并跟上数值(通常为变量名)来返回结果

function TimesTwo(my)

my = my * 2

return my

end

函数还可以返回多个结果

function ThreeDice()

d1 = math.random(1,6) --取随机数

d2 = math.random(1,6)

d3 = math.random(1,6)

myTotal = d1+d2+d3

return d1,d2,d3,myTotal

end

使用return还可以调用另外一个函数

标准库

assert(myValue)()

assert函数可以像处理函数一样运行编译后的代码块(chunk)

dofile(filename)

dofile载入并立即执行Lua脚本文件,通常用来载入定义的文件以备调用,还可以载入数据文件(如存档)

例:dofile("scripts/function.lua")

数学运算符,Lua提供函数级别的可以调用C标准库的数学运算符。

math.abs 取绝对值 math.max 一个集合中的“最大值”
math.acos 反余弦函数 math.min 一个集合中的“最小值”
math.asin 反正弦函数 math.mod 取模
math.atan 反正切函数 math.pow 两个参数x,y,求x的y次方
math.atan2 math.rad 角度转弧度
math.ceil 取不小于函数参数的最小整数值 math.sin 正玄
math.cos 余玄 math.sqrt 计算平方根
math.deg 弧度转角度 math.tan 正切
math.exp 计算e的指数次幂。参数为指数 math.frexp 指数计算,两个参数,第一参数为底数,第二参数为指数
math.floor 向下取整 math.ldexp 指数计算(x*2^y) ,两个参数,第一参数x为,第二参数为指数
math.log 计算以e为底的参数x的对数值 math.random 随机生成0~1之间的伪随机数
math.log10 同math.log math.randomseed 设随机数种子

常用的函数

math.floor()

floor函数用来向下取整(Lua中没有浮点数或者整数的概念),该函数只是舍去小数部分

如:a = 5.125

b = 5.72

print(math.floor(a))

print(math.floor(b))

输出结果都是

5

5

如果想实现四舍五入,那么给a,b都加0.5即可

math.random()

math.random随机生成0~1之间的伪随机数,Lua可以传入最大值和最小值,随机生成这个范围内的数字

如:mfDie = math.random(1,6)

math.min(),math.max()

math.min()确定一个集合中的最大值和最小值

今天先更新到这里......

时间: 2024-10-29 19:10:19

《Lua游戏开发实践指南》学习笔记2的相关文章

lua游戏开发实践指南学习笔记1

本文是根据lua游戏开发实践指南做的一些学习笔记,仅用于继续自己学习的一些知识. Lua基础 1.  语言定义: 在lua语言中,标识符有很大的灵活性(变量和函数名),不过用户不呢个以数字作为起始符,也要避免下划线(_)接大写字母,因为这种格式为lua自身保留如_Start. 建议用户使用如下格式和命名规则来定义变量.常量和函数名: ①  常量用全大写和下划线,例如:MY_CONSTANT ②  变量第一个字母小写,例如:myVariable ③  全角变量第一个字母用小写g表示,例如:gMyG

lua游戏开发实践指南学习笔记2

深入学习Lua 本人学习lua游戏开发实践指南的学习笔记,主要记录书中的一些知识点. 1.  函数 函数是划分游戏脚本功能的主要工具,它是通过标识符(事实上是一个变量)调用的lua代码块,可以执行某种处理.返回值,或者二者都有. 简单的函数定义如下: Function Wow() print(" ") print(Wow ,that wasaawesome:) print(" ") end 函数定义以function关键字开始,后面是函数名称,然后是传递给函数的参数

《LUA游戏开发实践指南》学习笔记1

本文只做个人学习笔记! Lua脚本语言的优点:免费.小巧.快速和易移植. 游戏项目中的Lua,可以完成以下工作 编辑游戏用户界面(玩家和你的游戏进行交互的媒介) 定义.存储和管理游戏数据(Lua本人并没有直接访问外部数据库的能力,但可以使用C++组件) 管理游戏实时事件 创建和维护开发者有好的游戏存储和载入系统 编写游戏的人工智能(AI) 创建功能原型,可以之后用高性能语言移植 Lua入门 Lua控制台 lua脚本(扩展名为.lua的文本文本) 代码块(Chunk):单个命令或者一系列命令组成脚

Hadoop权威指南学习笔记一

Hadoop权威指南学习笔记一 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习参考,有什么不到之处还望指出,一起学习一起进步. 转载请注明:http://blog.csdn.net/my_acm 1. 数据的增长远远超过了磁盘的读取速度,传统的数据存储方式和分析方式变得不再适用于大数据的处理. Hadoop分为两大核心技术,HDFS(HadoopDistributed File System-分布式hadoop文件处理系统)和MapReduce(分为Map-数据映射等

Cocos2d-x lua游戏开发之安装Lua到mac系统

注意:mac ox ,lua version :5.15 下载lua官网的lua, 注意:最好是5.15以下,5.2的lua不支持table的getn()方法,这让我情何以堪.(获取table长度,相当与cout,size,length) 下载解压, cd 目录 make macosx sudo make install (是的,就是小写的install,虽然文件夹下的是INSTALL) ook,进入命令行,输入lua 看下,效果 Cocos2d-x lua游戏开发之安装Lua到mac系统,布布

ASP.Net开发基础温故知新学习笔记

申明:本文是学习2014版ASP.Net视频教程的学习笔记,仅供本人复习之用,也没有发布到博客园首页. 一.一般处理程序基础 (1)表单提交注意点: ①GET通过URL,POST通过报文体: ②需在HTML中为表单元素设置name: ③元素id是给Dom用的,name才是提交给服务器用的: (2)请求处理响应模型: ①浏览器发出访问请求→②服务器处理访问请求并返回HTML→③浏览器解析HTML并显示页面 (3)GET与POST的区别:(★★★→重点) ①GET通过URL传值,而POST通过HTT

《JavaScript设计模式与开发实践》读书笔记之观察者模式

1.<JavaScript设计模式与开发实践>读书笔记之观察者模式 观察者模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知. JavaScript中通常采用事件模型替代传统的观察者模式 1.1 逐步实现观察者模式 以客户看房为例 首先指定谁充当发布者,如售楼处 然后给发布者添加一个缓存列表,用于存放回调函数以便通知订阅者.这里为了让订阅者只接收自己感兴趣的消息,增加一个标识key 最后发布消息时候,发布者遍历缓存列表,依次触发里面存放的订阅者的回

Git权威指南学习笔记(一)Git初始化

1.在Git中配置用户名和邮件地址 $ git config --global user.name "Jymn_Chen" $ git config --global user.email "[email protected]" 注意把用户名和邮件地址替换成你自己的资料. 在这里的参数global表示配置的作用范围是当前用户,如果将参数改为system,那么配置的作用范围是系统中的所有用户. 2.创建版本库 新建一个目录并cd到目录中,执行以下命令: $ git i

Git权威指南学习笔记(二)Git暂存区

如下图所示: 左侧为工作区,是我们的工作目录. 右侧为版本库,其中: index标记的是暂存区(stage),所处目录为.git/index,记录了文件的状态和变更信息. master标记的是master分支所代表的目录树.HEAD指向master分支. objects标记的是Git的对象库,所处目录为.git/objects,文件索引建立了文件和对象库中对象实体之间的映射关系. 通过该图我们可以清晰地看出add,commit等命令的转化关系.下面通过git diff和git status两条命