Lua实战:iOS游戏开发.pdf

Lua实战:iOS游戏开发.pdf
 

书籍描述

编辑推荐
内容全面深入,既深入阐述了Lua语言的核心要素,又全方位地讲解了利用Lua进行游戏开发和设计的各种技术细节、方法和最佳实践,
作者知名度高,麻省理工学院的工商管理学硕士,同时也是一位资深的IT人士,有超过20年的丰富从业经验。

作者简介
Jayant Varma是OZ Apps的执行董事,一家提供移动产品增值策略和移动开发及培训方面专业服务的澳大利亚咨询公司。在Mac App Store上好几款应用都得益于他的功劳。他是麻省理工学院的工商管理学硕士,同时也是一位资深的IT人士,在多个国家的自动化和高等教育等领域有超过20年的丰富经验。他创办了AUC(苹果大学联合)的iOS开发学习班。他还在博客上发布相关技术话题来帮助其他的开发者。

目录
第1章Lua入门
1.1什么是Lua
1.2Lua历史
1.3Lua大事记
1.4上手Lua
1.5配置Lua
1.5.1线上LuaShell
1.5.2Windows、MaxOSX和*nix
1.5.3iOS
1.6Lua特性
1.6.1变量
1.6.2用变量实现HelloWorld
1.6.3字符串
1.6.4数字
1.6.5值和类型
1.6.6块和作用域
1.7Lua运算符
1.7.1算术运算符
1.7.2关系运算符
1.7.3逻辑运算符
1.7.4其他运算符
1.8总结
第2章Lua库
2.1基础函数
2.1.1assert(v(,message))
2.1.2collectgarbage((opt(,arg)))
2.1.3dofile((filename))
2.1.4error(message(,level))
2.1.5_G
2.1.6getfenv((f))
2.1.7getmetatable(object)
2.1.8ipairs(t)
2.1.9load(func(,chunkname))
2.1.10loadstring(string(,chunkname))
2.1.11next(table(,index))
2.1.12pairs(t)
2.1.13pcall(f,arg1,…)
2.1.14print(…)
2.1.15rawequal(v1,v2)
2.1.16rawget(table,index)
2.1.17rawest(table,index,value)
2.1.18select(index,…)
2.1.19setfenv(f,table)
2.1.20setmetatable(table,metatable)
2.1.21tonumber(e(,base))
2.1.22tostring(e)
2.1.23type(v)
2.1.24unpack(list(,i(,j)))
2.1.25_VERSION
2.1.26xpcall(ferr)
2.2系统函数库
2.2.1表函数
2.2.2系统函数
2.3表(Tables)概述
2.3.1数组表
2.3.2关联数组表
2.4函数:进阶
2.4.1对象表
2.4.2.和:的区别
2.5小结
第3章文件操作
3.1隐式函数
3.1.1io.close((file))
3.1.2io.flush()
3.1.3io.input((file))
3.1.4io.lines((filename))
3.1.5io.open(filename(,mode))
3.1.6io.output((file))
3.1.7io.read(…)
3.1.8io.tmpfile()
3.1.9io.type(obj)
3.1.10io.write(…)
3.2显式函数
3.2.1file:close()
3.2.2file:flush()
3.2.3file:lines()
3.2.4file:read((format))
3.2.5file:seek((whence)(,offset))
3.2.6file:setvbuf(mode(,size))
3.2.7file:write(…)
3.3在游戏中使用文件I/O
3.4保存变量
3.5获取数据
3.5.1代码分析
3.5.2潜在问题
3.6变量存储数据
3.6.1代码分析
3.6.2潜在问题
3.7数据写入文件
3.8存储表
3.9动态变量
3.10小结
第4章Lua数学函数
4.1Lua数学函数简介
4.1.1math.abs(x)
4.1.2math.acos(x)
4.1.3math.asin(x)
4.1.4math.atan(x)
4.1.5math.atan2(y,x)
4.1.6math.ceil(x)
4.1.7math.cos(x)
4.1.8math.cosh(x)
4.1.9math.deg(x)
4.1.10math.exp(x)
4.1.11math.floor(x)
4.1.12math.fmod(x,y)
4.1.13math.frexp(x)
4.1.14math.huge
4.1.15math.ldexp(m,e)
4.1.16math.log(x)
4.1.17math.log10(x)
4.1.18math.max(x,…)
4.1.19math.min(x,…)
4.1.20math.modf(x)
4.1.21math.pi
4.1.22math.pow(x,y)
4.1.23math.rad(x)
4.1.24math.random((m(,n)))
4.1.25math.randomseed(x)
4.1.26math.sin(x)
4.1.27math.sinh(x)
4.1.28math.sqrt(x)
4.1.29math.tan(x)
4.1.30math.tanh(x)
4.2在游戏中应用数学函数的实例
4.2.1赋值
4.2.2递增与递减
4.2.3引入坐标点
4.2.4条件分支
4.2.5抛硬币
4.2.6掷骰子
4.2.7使用标记位(Flag)
4.2.8多种标记位
4.2.9利用数学函数实现循环
4.2.10在游戏中引入网格
4.2.11移动角色
4.3逻辑运算函数
4.4小结
第5章字符串
5.1什么是字符串
5.1.1string.byte(s(,i(,j)))
5.1.2string.char(…)
5.1.3string.dump(funtion)
5.1.4string.find(s,pattern(,init(,plain)))
5.1.5string.format(formatString,…)
5.1.6string.gmatch(s,pattern)
5.1.7string.gsub(s,pattern,repl(,n))
5.1.8string.len(s)
5.1.9string.lower(s)
5.1.10string.match(s,patterns(,init))
5.1.11string.rep(s,n)
5.1.12string.reverse(s)
5.1.13string.sub(s,i(,j))
5.1.14string.upper(s)
5.2模式
5.2.1字符类
5.2.2模式项
5.2.3模式
5.2.4捕获
5.3使用字符串函数
5.3.1将字符串转化为大写
5.3.2将字符串转化为小写
5.3.3将字符串转化为首字母大写
5.3.4填充字符串
5.3.5CSV功能
5.3.6用千位分隔符规范数字的格式
5.3.7字母频率
5.3.8判断回文字符串
5.3.9分割字符串
5.4关卡管理
5.5小结
第6章线程
6.1协同线程
6.1.1协同线程函数
6.1.2创建协同线程
6.2表
6.2.1自定义元表
6.2.2实际例子
6.3Lua面向对象
6.4什么是对象
6.5小结
第7章技巧提示
7.1通用Lua函数
7.1.1使用printf函数
7.1.2计算表中元素的数量
7.1.3使用IsEmpty
7.1.4获取元素索引
7.1.5判断一个表是否是数组
7.1.6设置默认值
7.1.7复制表
7.1.8深度复制
7.1.9复制数组部分
7.1.10复制非数组部分
7.1.11合并两个表
7.1.12判断表是否包含特定值
7.1.13找出Table之间的差异
7.1.14表作为返回值
7.1.15表内元素排序
7.1.16判断表中特定项的频度
7.1.17转换数字为罗马数字
7.1.18创建链表
7.1.19扩展标记变量
7.1.20字符串补零
7.1.21获取字符类型的月份
7.1.22像数组一样访问字符串
7.1.23测量一维或二维中两点间距
7.1.24判断两点的夹角
7.1.25限定数字范围
7.1.26线性插值法
7.1.27获取值的标识符
7.2碰撞
7.2.1使用isPointlnRect
7.2.2使用pointlnCircle
7.2.3判断一个矩形是否包含另一个矩形
7.2.4判断一个圆形是否包含另一个圆形
7.2.5识别重叠矩形
7.2.6识别重叠圆形
7.2.7判断一个圆形和一个矩形是否重叠
7.2.8使用pointlnTriangle
7.2.9使用pointlnPolygon
7.3其他通用函数
7.3.1布尔值比较
7.3.2将C/Java循环代码转换为Lua
7.3.3应用物体摩擦力
7.3.4模拟一个玩偶盒
7.3.5正弦滚动条
7.3.6在面板的单行或单列放置唯一图块
7.3.7利用数组输出大规模模板文本
7.4参数处理
7.4.1固定参数
7.4.2动态参数
7.4.3动态名称参数
7.4.4使用可变参数
7.4.5解析传入参数列表
7.4.6生成只读Table
7.4.7实现堆栈
7.4.8参数和表之间的转换
7.5二维矢量
7.6小结
第8章CoronaSDK
8.1配置CoronaSDK
8.2CoronaSDK工作原理
8.3CoronaSDKHelloWorld
8.3.1图像版本
8.3.2HelloWorld
8.3.3设备显示HelloWorld
8.4不仅仅是HelloWorld:在屏幕上创建一个矩形
8.4.1群组
8.4.2图像
8.4.3事件驱动
8.4.4触屏输入
8.4.5物理特性
8.5一切都是计时
8.5.1帧
8.5.2实现生命条
8.6利用enterFrame实现动画
8.6.1再说生命条
8.6.2使用transition函数
8.6.3移除屏幕中的对象
8.7制作音效
8.7.1发出声音
8.7.2加工声音
8.8视频处理
8.9实现一个电梯
8.9.1放大视图
8.9.2其他事件
8.9.3使用地图
8.10浏览器
8.11对象回收
8.12企业版本
8.13小结
……
第9章GiderosStudio
第10章Moai
第11章LOVE
第12章Codea
第13章库
第14章第三方应用程序
第15章示例代码

文摘
版权页:



文件操作
开发一个应用或游戏时会需要用到文件I/O(输入/输出)。或许你不使用数据库,但还是会有一些东西需要存储到硬盘里,比如等级、最高分、玩家解锁的角色或是应用内购买相关的信息。
让我们先看看可以提供文件操作功能的函数。Lua有两类文件操作函数,隐式(Implicit)和显式(Explicit)。两者不同之处在于,隐式函数处理由10命名空间所提供的默认文件,而显式函数处理前一个操作提供的文件句柄,比如io.open。
3.1隐式函数
这部分列出并描述了Lua开发中常用的隐式函数,附带一小段演示如何使用的示例代码。
3.1.1io.close((file))
这个函数会关闭指定文件,与file:close()类似,如果没有指定文件,则关闭默认的输出文件。下面演示如何用io.close关闭一个文件句柄。为了便于确认,我们通过输出fileHandle的类型来判断文件是打开的还是关闭的。
3.1.2io.flush()
这个函数在默认文件中会执行io.flush()。当一个文件使用缓冲模式时,数据不会被立即写入文件,而是保存在缓冲区直到写满才会输出。该函数可以强制将缓冲区的内容输出到文件并清空。
3.1.3io.input((file))
这个函数如果在无参数情况下调用,则返回当前默认的输入文件。传入的参数可以是文件名或者文件句柄。当参数是文件名时,它会将指定文件设置为默认输入文件的句柄。如果参数是一个文件句柄,则会把它设置为默认的输入文件句柄。

内容简介
  《Lua实战:iOS游戏开发》程语言的相关知识,并着重展现了Lua在iOS平台开发过程中的编程方法。《Lua实战:iOS游戏开发》从Lua语言基础开始,详细地讲解了Lua中的变量、运算符、基础函数、数学函数、字符串函数、线程等基本知识,总结了Lua开发中的特殊之处。此外,还介绍了Corona SDK、Gideros Studio、Moai、L?VE和Codea这几个框架,为Lua语言在iOS游戏开发过程中的使用进行了极佳的铺垫。最后,书中介绍了一些与Lua有关的库和第三方应用程序,并通过一个复杂的实例全面地总结了书中的知识。
  《Lua实战:iOS游戏开发》适合对使用Lua iOS下进行游戏开发感兴趣的读者,也适用于有一定编程基础,想要深入学习Lua的开发人员。

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多