《Lua游戏开发实践指南》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:(美)斯库特玛,(美)马尼恩著;田剑译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2013
  • ISBN:9787111403357
  • 页数:246 页
图书介绍:本书首先介绍了Lua语言的历史并揭示了如何在C++项目中集成Lua,然后详细讲述了Lua的核心特性和优点,并带领读者一起快速开发Take Away游戏的原型。这个游戏展示了如何采用C++和Lua脚本的方式开发游戏数据的保存和读取功能、建立模块化的灵活的GUI系统、使用Lua脚本管理运行时的事件以及使用Lua定义和控制游戏AI,还包含了很多小游戏例子的全部技术细节。

第1章 游戏开发入门 1

1.1越来越复杂的开发过程 1

1.2更好的开发方式 2

1.3为什么使用Lua 3

1.4本章小结 4

第2章 脚本语言 5

2.1脚本语言简介 5

2.2 Lua简介 6

2.2.1 Lua的历史 7

2.2.2 Lua授权 7

2.3本章小结 8

第3章 游戏开发世界的Lua语言 10

3.1脚本语言和游戏 10

3.2游戏项目中的Lua 11

3.2.1游戏界面 11

3.2.2管理游戏数据 12

3.2.3事件处理 14

3.2.4保存和读取游戏状态 14

3.2.5人工智能 15

3.2.6快速构建原型 16

3.3本章小结 16

第4章Lua入门 17

4.1使用Lua控制台 17

4.2 Lua基础 19

4.3变量 21

4.3.1 nil 21

4.3.2 Boolean 21

4.3.3 string 22

4.3.4 Number 22

4.3.5 table 23

4.3.6局部变量和全局变量 23

4.4运算符 24

4.4.1算术运算符 24

4.4.2关系运算符 24

4.4.3逻辑运算符 25

4.5控制结构 26

4.5.1 if 27

4.5.2 while和repeat 27

4.5.3 for 28

4.5.4 break 29

4.6本章小结 29

第5章 深入学习Lua 30

5.1函数 30

5.1.1单一参数 31

5.1.2多个参数 31

5.1.3返回值 32

5.2标准库 34

5.2.1 assert(myValue)() 34

5.2.2 dofiile(fiilename) 35

5.2.3 math.floor() 36

5.2.4 math.random() 36

5.2.5 math.min() 37

5.3字符处理 38

5.3.1类型转换 38

5.3.2 string.char(nl, n2,.) 38

5.3.3 stnng.len(myString) 38

5.3.4 stnng.sub(myString,start, end) 39

5.3.5 string.format() 39

5.3.6 stnng.fiind(sourceString,fiindString) 40

5.3.7字符和格式 40

5.4 table数据结构 42

5.4.1 table.getn (myTable) 43

5.4.2 table.insert(myTable,position,value) 43

5.4.3 table.remove (myTable,position) 44

5.4.4 table引用 44

5.4.5多维table 44

5.4.6 pairs() 45

5.5 I/O基础 46

5.6本章小结 47

第6章Lua与C/C+++程序的整合 48

6.1初期设计要点 48

6.1.1 Lua环境 48

6.1.2 LuaGlue函数 49

6.2基本实现方式 49

6.2.1创建Lua运行环境 50

6.2.2添加LuaGlue函数 51

6.2.3命令处理 51

6.2.4退出程序 52

6.2.5 cLua对象和LuaLib 52

6.2.6使用cLua的例子 53

6.2.7 LuaGlue函数的优点 55

6.2.8 LuaGlue函数:参数和返回值 55

6.3本章小结 56

第7章Lua与C+++的交互 57

7.1重新审视LuaGlue函数 57

7.2 C+++代码和Lua的交互 58

7.3事件驱动的编程 58

7.3.1示例事件 58

7.3.2事件的参数 59

7.4错误处理 60

7.5本章小结 61

第8章 开发准备 62

8.1 Visual C+++6.0工作区 63

8.2 DirectX基础 63

8.3 LuaGUI简介 65

8.3.1启动GUI 66

8.3.2界面 66

8.3.3界面控件 66

8.3.4事件 67

8.3.5与GUI系统相关的LuaGlue函数 67

8.3.6 Shell程序的扩展 68

8.4调试窗口 69

8.5 Windows注册表 69

8.6本章小结 70

第9章 设计Lua版本的实现 71

9.1游戏设计原则 71

9.1.1什么是游戏 71

9.1.2了解玩家的想法 72

9.2基础库设定 73

9.3设计文档 78

9.4 Lua编程规范 81

9.5本章小结 83

第10章 使用Lua处理游戏数据 84

10.1简单的游戏数据 84

10.1.1太空飞船的例子 85

10.1.2 《Take Away》的玩家飞船 88

10.1.3敌舰数据 89

10.1.4补给箱数据 91

10.2大数据集 92

10.2.1表单型数据 93

10.2.2 Lua格式的数据文件 95

10.3使用Lua保存游戏数据 96

10.3.1案例1——《Frontrunner》 106

10.3.2案例2——健身大亨 107

10.4本章小结 108

第11章Lua驱动的GUI 110

11.1 GUI系统概要 110

11.2 GUI的C+++类 111

11.2.1 GUI控件:Sprite 112

11.2.2 GUI控件:TextField 113

11.2.3 GUI控件:Button 113

11.2.4界面 114

11.2.5 GUI管理器 115

11.3 GUI LuaGlue函数 116

11.4进一步的说明 118

11.5 Lua游戏界面 119

11.5.1界面设计原则 119

11.5.2快速创建界面 120

11.5.3载入界面 121

11.5.4主菜单界面 125

11.5.5 Controls界面 130

11.5.6 InGame界面 132

11.6本章小结 135

第12章Lua游戏编程 136

12.1游戏主循环 136

12.2井字棋 137

12.2.1游戏的初始化 138

12.2.2游戏回合处理 139

12.2.3模拟游戏回合 147

12.3 《Take Away》游戏的实现原理 147

12.3.1 InGame 147

12.3.2使用计时器 152

12.3.3玩家操作 154

12.3.4子弹运动 156

12.3.5飞船移动 158

12.3.6绘制活动的物体 161

12.4本章小结 163

第13章 使用Lua定义和控制AI 164

13.1智能的体现 164

13.2 21点游戏 165

13.3井字棋 170

13.4 《Take Away》游戏的实现 175

13.4.1掠夺舰 175

13.4.2攻击舰 176

13.4.3冲击舰 176

13.4.4混合舰 177

13.4.5控制飞行方向 178

13.4.6碰撞检测 179

13.5其他AI的例子 183

13.5.1静态追踪 183

13.5.2近距离追踪 185

13.5.3动态追踪 186

13.5.4预判型追踪 186

13.5.5炮塔攻击 188

13.5.6躲避攻击 189

13.5.7防御性射击 190

13.5.8攻击伤害 191

13.6有限状态机 192

13.7路径寻找 194

13.7.1算法概要 194

13.7.2路径寻找示例 196

13.7.3 Lua实现 197

13.8本章小结 205

第14章Lua和图像 206

14.1运行绘图示例 206

14.1.1指纹示例 206

14.1.2爆炸示例 208

14.2线性移动 213

14.2.1 GetCollisions函数 216

14.2.2 HitTest函数 218

14.2.3进一步的说明 219

14.3碰撞检测 219

14.3.1 LuaGlue函数SetTexture 220

14.3.2坦克示例 222

14.4 2D粒子系统 226

14.5本章小结 231

第15章 最后说明 232

15.1添加音效和音乐 232

15.1.1 LuaGlue函数PlaySound 233

15.1.2音乐 234

15.2使用编辑器 234

15.3调试Lua脚本 235

15.3.1通用原则 236

15.3.2调用DoFile函数 237

15.3.3 Lua错误消息 238

15.3.4使用实时调试窗口 238

15.3.5使用文本框 239

15.3.6使用文件输出 240

15.4资源管理 241

15.4.1资源的组织 241

15.4.2运行时的文件夹 242

15.5发布Lua代码 242

15.6许可证 244

15.7进一步的说明 245

15.8本章小结 246