《lua实战:ios游戏开发》
第1章 lua入门 1
1.1 什么是lua 1
1.2 lua历史 1
1.3 lua大事记 2
1.4 上手lua 3
1.5 配置lua 4
1.5.1 线上lua shell 4
1.5.2 windows、max os x和*nix 4
1.5.3 ios 4
1.6 lua特性 4
1.6.1 变量 4
1.6.2 用变量实现hello world 5
1.6.3 字符串 6
1.6.4 数字 7
1.6.5 值和类型 8
1.6.6 块和作用域 9
1.7 lua运算符 10
1.7.1 算术运算符 10
1.7.2 关系运算符 10
.1.7.3 逻辑运算符 10
1.7.4 其他运算符 11
1.8 总结 11
第2章 lua库 12
2.1 基础函数 12
2.1.1 assert(v[,message]) 12
2.1.2 collectgarbage([opt[,arg]]) 12
2.1.3 dofile([filename]) 13
2.1.4 error(message[,level]) 13
2.1.5 _g 13
2.1.6 getfenv([f]) 13
2.1.7 getmetatable(object) 13
2.1.8 ipairs(t) 13
2.1.9 load(func[,chunkname]) 14
2.1.10 loadstring(string[,chunkname]) 14
2.1.11 next(table[,index]) 14
2.1.12 pairs(t) 14
2.1.13 pcall(f,arg1,…) 14
2.1.14 print(…) 14
2.1.15 rawequal(v1,v2) 15
2.1.16 rawget(table,index) 15
2.1.17 rawest(table,index,value) 15
2.1.18 select(index,…) 15
2.1.19 setfenv(f,table) 15
2.1.20 setmetatable(table,metatable) 15
2.1.21 tonumber(e[,base]) 15
2.1.22 tostring(e) 15
2.1.23 type(v) 16
2.1.24 unpack(list[,i[,j]]) 16
2.1.25 _version 16
2.1.26 xpcall(f,err) 16
2.2 系统函数库 17
2.2.1 表函数 17
2.2.2 系统函数 19
2.3 表(tables)概述 21
2.3.1 数组表 21
2.3.2 关联数组表 21
2.4 函数:进阶 21
2.4.1 对象表 22
2.4.2 .和:的区别 23
2.5 小结 25
第3章 文件操作 26
3.1 隐式函数 26
3.1.1 io.close([file]) 26
3.1.2 io.flush() 26
3.1.3 io.input([file]) 27
3.1.4 io.lines([filename]) 27
3.1.5 io.open(filename[,mode]) 27
3.1.6 io.output([file]) 27
3.1.7 io.read(…) 28
3.1.8 io.tmpfile() 28
3.1.9 io.type(obj) 28
3.1.10 io.write(…) 28
3.2 显式函数 28
3.2.1 file:close() 28
3.2.2 file:flush() 29
3.2.3 file:lines() 29
3.2.4 file:read([format]) 29
3.2.5 file:seek([whence][,offset]) 29
3.2.6 file:setvbuf(mode[,size]) 30
3.2.7 file:write(…) 30
3.3 在游戏中使用文件i/o 30
3.4 保存变量 31
3.5 获取数据 31
3.5.1 代码分析 32
3.5.2 潜在问题 32
3.6 变量存储数据 33
3.6.1 代码分析 33
3.6.2 潜在问题 34
3.7 数据写入文件 35
3.8 存储表 35
3.9 动态变量 36
3.10 小结 37
第4章 lua数学函数 38
4.1 lua数学函数简介 38
4.1.1 math.abs(x) 38
4.1.2 math.acos(x) 38
4.1.3 math.asin(x) 38
4.1.4 math.atan(x) 39
4.1.5 math.atan2(y,x) 39
4.1.6 math.ceil(x) 39
4.1.7 math.cos(x) 39
4.1.8 math.cosh(x) 39
4.1.9 math.deg(x) 39
4.1.10 math.exp(x) 39
4.1.11 math.floor(x) 40
4.1.12 math.fmod(x,y) 40
4.1.13 math.frexp(x) 40
4.1.14 math.huge 40
4.1.15 math.ldexp(m,e) 40
4.1.16 math.log(x) 40
4.1.17 math.log10(x) 41
4.1.18 math.max(x,...) 41
4.1.19 math.min(x,...) 41
4.1.20 math.modf(x) 41
4.1.21 math.pi 41
4.1.22 math.pow(x,y) 41
4.1.23 math.rad(x) 41
4.1.24 math.random([m[,n]]) 41
4.1.25 math.randomseed(x) 42
4.1.26 math.sin(x) 42
4.1.27 math.sinh(x) 42
4.1.28 math.sqrt(x) 42
4.1.29 math.tan(x) 42
4.1.30 math.tanh(x) 42
4.2 在游戏中应用数学函数的实例 42
4.2.1 赋值 43
4.2.2 递增与递减 43
4.2.3 引入坐标点 44
4.2.4 条件分支 44
4.2.5 抛硬币 45
4.2.6 掷骰子 45
4.2.7 使用标记位(flag) 46
4.2.8 多种标记位 47
4.2.9 利用数学函数实现循环 48
4.2.10 在游戏中引入网格 48
4.2.11 移动角色 56
4.3 逻辑运算函数 59
4.4 小结 61
第5章 字符串 62
5.1 什么是字符串 62
5.1.1 string.byte(s[,i[,j]]) 62
5.1.2 string.char(...) 63
5.1.3 string.dump(funtion) 63
5.1.4 string.find(s,pattern[,init[,plain]]) 63
5.1.5 string.format(formatstring,...) 63
5.1.6 string.gmatch(s,pattern) 64
5.1.7 string.gsub(s,pattern,repl[,n]) 64
5.1.8 string.len(s) 64
5.1.9 string.lower(s) 64
5.1.10 string.match(s,patterns[,init]) 64
5.1.11 string.rep(s,n) 64
5.1.12 string.reverse(s) 65
5.1.13 string.sub(s,i[,j]) 65
5.1.14 string.upper(s) 65
5.2 模式 65
5.2.1 字符类 65
5.2.2 模式项 66
5.2.3 模式 66
5.2.4 捕获 66
5.3 使用字符串函数 66
5.3.1 将字符串转化为大写 67
5.3.2 将字符串转化为小写 67
5.3.3 将字符串转化为首字母大写 67
5.3.4 填充字符串 67
5.3.5 csv功能 68
5.3.6 用千位分隔符规范数字的格式 69
5.3.7 字母频率 69
5.3.8 判断回文字符串 70
5.3.9 分割字符串 70
5.4 关卡管理 70
5.5 小结 72
第6章 线程 73
6.1 协同线程 73
6.1.1 协同线程函数 73
6.1.2 创建协同线程 74
6.2 表 77
6.2.1 自定义元表 78
6.2.2 实际例子 83
6.3 lua面向对象 83
6.4 什么是对象 87
6.5 小结 90
第7章 技巧提示 91
7.1 通用lua函数 91
7.1.1 使用printf函数 91
7.1.2 计算表中元素的数量 92
7.1.3 使用isempty 92
7.1.4 获取元素索引 92
7.1.5 判断一个表是否是数组 93
7.1.6 设置默认值 93
7.1.7 复制表 94
7.1.8 深度复制 94
7.1.9 复制数组部分 95
7.1.10 复制非数组部分 95
7.1.11 合并两个表 95
7.1.12 判断表是否包含特定值 95
7.1.13 找出table之间的差异 96
7.1.14 表作为返回值 96
7.1.15 表内元素排序 96
7.1.16 判断表中特定项的频度 97
7.1.17 转换数字为罗马数字 97
7.1.18 创建链表 98
7.1.19 扩展标记变量 99
7.1.20 字符串补零 100
7.1.21 获取字符类型的月份 100
7.1.22 像数组一样访问字符串 101
7.1.23 测量一维或二维中两点间距 101
7.1.24 判断两点的夹角 101
7.1.25 限定数字范围 101
7.1.26 线性插值法 102
7.1.27 获取值的标识符 102
7.2 碰撞 103
7.2.1 使用ispointlnrect 103
7.2.2 使用pointlncircle 103
7.2.3 判断一个矩形是否包含另一个矩形 104
7.2.4 判断一个圆形是否包含另一个圆形 104
7.2.5 识别重叠矩形 104
7.2.6 识别重叠圆形 105
7.2.7 判断一个圆形和一个矩形是否重叠 105
7.2.8 使用pointlntriangle 106
7.2.9 使用pointlnpolygon 106
7.3 其他通用函数 107
7.3.1 布尔值比较 107
7.3.2 将c/java循环代码转换为lua 107
7.3.3 应用物体摩擦力 108
7.3.4 模拟一个玩偶盒 108
7.3.5 正弦滚动条 109
7.3.6 在面板的单行或单列放置唯一图块 109
7.3.7 利用数组输出大规模模板文本 110
7.4 参数处理 111
7.4.1 固定参数 111
7.4.2 动态参数 112
7.4.3 动态名称参数 112
7.4.4 使用可变参数 112
7.4.5 解析传入参数列表 113
7.4.6 生成只读table 115
7.4.7 实现堆栈 116
7.4.8 参数和表之间的转换 117
7.5 二维矢量 118
7.6 小结 120
第8章 corona sdk 121
8.1 配置corona sdk 121
8.2 corona sdk工作原理 121
8.3 corona sdk helloworld 122
8.3.1 图像版本 123
8.3.2 hello world 124
8.3.3 设备显示hello world 125
8.4 不仅仅是hello world:在屏幕上创建一个矩形 126
8.4.1 群组 128
8.4.2 图像 130
8.4.3 事件驱动 130
8.4.4 触屏输入 131
8.4.5 物理特性 132
8.5 一切都是计时 134
8.5.1 帧 135
8.5.2 实现生命条 136
8.6 利用enterframe实现动画 138
8.6.1 再说生命条 139
8.6.2 使用transition函数 140
8.6.3 移除屏幕中的对象 145
8.7 制作音效 145
8.7.1 发出声音 145
8.7.2 加工声音 146
8.8 视频处理 148
8.9 实现一个电梯 149
8.9.1 放大视图 150
8.9.2 其他事件 153
8.9.3 使用地图 155
8.10 浏览器 156
8.11 对象回收 157
8.12 企业版本 158
8.13 小结 158
第9章 gideros studio 159
9.1 许可 159
9.2 安装gideros studio 159
9.2.1 包含内容 160
9.2.2 设置许可 160
9.2.3 第一步 161
9.2.4 运行代码 162
9.2.5 配置项目 163
9.3 架构 165
9.4 gideros引擎 165
9.4.1 hello小鸟 166
9.4.2 对齐图像 166
9.4.3 群组 167
9.4.4 显示文字 168
9.4.5 绘制形状 170
9.4.6 应用程序对象 174
9.4.7 添加音效 176
9.4.8 事件 176
9.4.9 动画 181
9.4.10 局域网和网络 182
9.4.11 gps和指南针 183
9.4.12 加速计 184
9.4.13 陀螺仪 184
9.4.14 物理效果 185
9.5 插件 186
9.6 小结 188
第10章 moai 190
10.1 什么是moai 190
10.2 获取moai 190
10.3 moai sdk 191
10.4 hello moai 191
10.5 显示文字 194
10.5.1 truetype字体 194
10.5.2 位图字体 195
10.5.3 文本属性 196
10.6 绘制矢量图元 197
10.6.1 绘制直线 197
10.6.2 绘制矩形 197
10.6.3 绘制填充矩形 199
10.6.4 绘制圆 200
10.6.5 绘制填充圆 200
10.6.6 绘制椭圆 200
10.6.7 绘制填充椭圆 200
10.6.8 绘制多边形 201
10.6.9 绘制点 201
10.6.10 绘制属性 202
10.7 绘制图像 202
10.7.1 绘制自定义图像 203
10.7.2 载入图像 203
10.7.3 copying images 204
10.7.4 保存图像 204
10.7.5 修改图像尺寸 204
10.7.6 图像的像素提取 204
10.8 动画 205
10.9 栅格deck 206
10.10 线程 209
10.11 组 210
10.12 处理输入 212
10.12.1 键盘事件 212
10.12.2 鼠标事件 213
10.12.3 触控事件 216
10.13 声音 217
10.14 显示对话框 217
10.15 播放视频 218
10.16 设备旋转 218
10.17 通知 218
10.18 网络 219
10.19 使用json 221
10.20 使用base64 221
10.21 压缩数据 222
10.22 物理特性 223
10.22.1 box2d物理功能 223
10.22.2 chipmunk物理功能 226
10.23 moai云 228
10.23.1 创建web服务 228
10.23.2 使用web服务 230
10.24 小结 231
第11章 l?ve 232
11.1 架构 232
11.2 安装l?ve 233
11.3 运行l?ve 233
11.4 回调函数 234
11.4.1 love.load() 234
11.4.2 love.update(dt) 234
11.4.3 love.draw() 234
11.4.4 love.mousepressed(x,y,button) 234
11.4.5 love.mousereleased(x,y,button) 234
11.4.6 love.keypressed(key,unicode) 234
11.4.7 love.keyreleased(key) 235
11.4.8 love.focus() 235
11.4.9 love.quit() 235
11.5 l?ve命名空间 235
11.5.1 love.audio 235
11.5.2 love.event 235
11.5.3 love.filesystem 236
11.5.4 love.font 236
11.5.5 love.graphics 236
11.5.6 love.image 236
11.5.7 love.joystick 236
11.5.8 love.mouse 237
11.5.9 love.physics 237
11.5.10 love.sound 237
11.5.11 love.thread 237
11.5.12 love.timer 237
11.6 图形模块 237
11.6.1 图像 237
11.6.2 移动 240
11.6.3 活动窗口 241
11.6.4 使用键盘控制移动 241
11.6.5 旋转对象 245
11.6.6 绘制图元 246
11.7 应用程序设置——conf.lua 251
11.8 创建特效 252
11.9 物理 254
11.10 显示文本 256
11.11 着色器 257
11.12 制造声音 259
11.13 示例游戏代码 260
11.14 小结 265
第12章 codea 266
12.1 获取codea 266
12.2 codea的架构 267
12.3 hello world 267
12.4 参数 268
12.5 使用codea进行绘制 269
12.5.1 设备旋转 269
12.5.2 系统键盘 270
12.5.3 绘制模式 270
12.5.4 背景颜色 270
12.5.5 画笔颜色 271
12.5.6 填充色 271
12.5.7 线宽 271
12.5.8 绘制直线 271
12.5.9 抗锯齿 271
12.5.10 绘制圆和椭圆 272
12.5.11 绘制矩形 273
12.5.12 绘制文本 273
12.6 显示图片 274
12.6.1 屏幕外绘制 275
12.6.2 在图片中载入精灵 275
12.6.3 保存图片 275
12.6.4 保存数据 275
12.6.5 “无色”绘制 276
12.6.6 变换函数 276
12.7 录制视频 277
12.8 触控 277
12.8.1 使用触控进行绘制 278
12.8.2 多点触控 279
12.9 制造声音 280
12.10 ios硬件 281
12.11 下载数据 283
12.12 显示网页 284
12.13 物理特性 284
12.14 矢量计算 286
12.14.1 anglebetween 286
12.14.2 cross 286
12.14.3 dist 286
12.14.4 distsqr 286
12.14.5 dot 286
12.14.6 len 286
12.14.7 lensqr 287
12.14.8 normalize 287
12.14.9 rotate 287
12.14.10 rotate90 287
12.15 小结 287
第13章 库 288
13.1 particle candy 288
示例代码 289
13.2 text candy 290
示例代码 291
13.3 widget candy 291
示例代码 292
13.4 corona autolan 293
13.5 corona profiler 293
示例代码 294
13.6 director 294
示例代码 295
13.7 lime 295
示例代码 295
13.8 rapanui 295
示例代码 296
13.9 gideros illustrator(svg library) 296
示例代码 297
13.10 tnt particles library 297
示例代码 297
13.11 busted 297
示例代码 298
13.12 moses 298
示例代码 298
13.13 allen 299
示例代码 299
13.14 bhwax 299
示例代码 299
13.15 小结 301
第14章 第三方应用程序 302
14.1 ide 302
14.1.1 glider 302
14.1.2 coronacomplete 303
14.1.3 lua studio 304
14.1.4 zerobrane studio 305
14.2 文本编辑器 306
14.2.1 notepad++ 306
14.2.2 textmate 307
14.2.3 textwrangler 308
14.2.4 bbedit 308
14.2.5 sublime text 2 309
14.2.6 textastic代码编辑器 310
14.3 片段收集器 311
14.3.1 codebox 312
14.3.2 code collector pro 312
14.4 版本控制 313
14.5 位图编辑器 314
14.5.1 pixen 314
14.5.2 graphicsgale 315
14.5.3 pixelmator 316
14.5.4 axialis iconworkshop 317
14.5.5 inkscape 317
14.5.6 paint.net 318
14.5.7 iconify 319
14.6 精灵动画和层级创建工具 320
14.6.1 spritehelper 320
14.6.2 levelhelper 320
14.6.3 tiled 321
14.6.4 texturepacker 322
14.6.5 physicseditor 323
14.6.6 particle designer 324
14.6.7 glyph designer 325
14.6.8 spriteloq 326
14.6.9 zo? 327
14.6.10 tnt animator studio 328
14.7 音频工具 328
14.7.1 audacity 328
14.7.2 bfxr 329
14.7.3 nodebeat 330
14.8 小结 331
第15章 示例代码 332
15.1 图形 332
15.2 搭建环境 333
15.3 让直升机飞起来 334
15.4 使用加速度仪 336
15.5 移动直升机 336
15.6 发出声音 338
15.7 开枪 339
15.8 让子弹飞 340
15.9 敌军降临 341
15.10 移动场景物品 344
15.11 挂了 345
15.12 上点颜色 347
15.13 显示信息 348
15.14 game over,再来一遍 350
15.15 碰撞 352
15.15.1 射击飞机和气球 354
15.15.2 营救与加油 356
15.16 放到一起 357
15.17 小结 358
· · · · · · (
收起)