当前位置:首页 > 工业技术
Lua实战  iOS游戏开发
Lua实战  iOS游戏开发

Lua实战 iOS游戏开发PDF电子书下载

工业技术

  • 电子书积分:13 积分如何计算积分?
  • 作 者:(澳)瓦玛(JAYANTVARMA)著;麦秆创智译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2014
  • ISBN:9787115331755
  • 页数:358 页
图书介绍:本书从Lua语言基础开始,详细地讲解Lua中的变量、运算符、基础函数、数学函数、字符串函数、线程等基本知识,总结了Lua开发中的特殊之处。此外,还介绍了Corona SDK、Gideros Studio、Moai、L?VE和Codea这几个框架,为Lua语言在iOS游戏开发过程中的使用进行了极佳的铺垫。最后,本书介绍一些和Lua有关的库和第三方应用程序,并通过一个复杂的实例全面地总结了书中的知识。
《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,pattems[,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 Hello World 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章 LOVE 232

11.1架构 232

11.2安装LOVE 233

11.3运行LOVE 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 LOVE命名空间 235

11.5.1 love.audio 235

11.5.2 love.even 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 Zoe 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

返回顶部