书籍详情
.NET游戏编程入门经典:VB.NET篇
作者:(美)威勒、罗伯、海顿
出版社:清华大学出版社
出版时间:2006-09-01
ISBN:9787302135906
定价:¥39.00
购买这本书可以去
内容简介
尽管现在发布的游戏越来越倾向于图形化,但是游戏的主要特点“可娱乐性”,却在有些时候被遗忘了。尽管游戏中那些惊险的图形画面、精彩的情景切换和3-D图形世界简直让我们眼花缭乱,但是它们有很多内容其实都不适合用户。有时候,即使一个游戏得到的反响很好,但游戏的可娱乐性却是不明确的或者是比较失败的。您觉得旧版本的Pac-Man游戏怎么样呢?凭借其华丽的游戏环境,Pac-Man游戏以及早期版本的Mario Brothers on Nintendo游戏在孩子们中间仍然大受欢迎。这里,我们的目的不是让您忘记所有的事情而过分地关注这些基本点。相反,我们希望您能够牢记:一个好的游戏总是始于一个好的构想,有时候,仅这一点就已经足够了。引用最为普遍的一个游戏是Tetris(俄罗斯方块),它是由一个俄国编程人员单独开发的。这些年过去了,这个程序依然非常有意义,而且,我们也在本书的第1章复制了一个Tetris游戏程序—— 我们的“Hello World”程序。当然,您可能会说“Tetris”只是成千上万个游戏程序中的一个,这一点我们也同意。但是如果您说“只有像Tetris那样简单的游戏,才可能只需一个人就可以较好地单独创建完成”,那么我们将不同意您的这种观点。年长一些的人们可能还记得Another World游戏,此游戏具有一个续集,称为FlashBack。该游戏具有的图形界面和音效对于那个时代而言非常好,并且它还具有漂亮的人物动画,以及各种各样的情景切换,这些情景切换通过“在不同视角显示游戏人物和奇异的世界”来完成游戏情节,而这个游戏也是由一个人单独设计的,设计者就是法国的一个程序员。今天,我们可以找到很多关于业余程序员创建的游戏的网站。这些游戏中有些确实还不错,它们具有高质量的图形处理界面和音效;而且更重要的是,它们几乎都具有很好的可娱乐性,当然,这也许是因为他们只是喜欢创建和玩这些游戏,而不是为了赚钱。本书将介绍很多提示和技巧来帮助开发人员单独设计自己的游戏。然而,如果您可以找到一些人来帮助您开发游戏的话,那还是请他(她)和您一起工作吧。当然,除了一个好的构想之外,还有很多内容与游戏开发有关。
作者简介
暂缺《.NET游戏编程入门经典:VB.NET篇》作者简介
目录
第1章 .Nettrix:GDI+与冲突检测 1
1.1 GDI+基本概念 1
1.1.1 路径梯度 2
1.1.2 α混合 2
1.1.3 基数样条函数 2
1.2 使用Graphics对象执行图形操作 3
1.2.1 使用PaintEventArgs参数创建Graphics对象 4
1.2.2 使用窗口句柄创建Graphics对象 4
1.2.3 从图像中创建Graphics对象 5
1.2.4 从一个指向设备上下文的特定句柄创建Graphics对象 5
1.3 创建梯度 5
1.4 冲突检测 7
1.4.1 限定框算法 7
1.4.2 邻近性检测算法 11
1.5 优化计算量 15
1.5.1 平铺游戏区域 16
1.5.2 位分区 16
1.5.3 位数组分区 18
1.6 把算法扩展到三维图形情况下 19
1.7 游戏开发方案 20
1.8 游戏项目开发 21
1.8.1 类图:最初设计 22
1.8.2 游戏引擎 23
1.8.3 类图:最终设计 24
1.9 编码阶段 25
1.9.1 概略设计:编写Square类 26
1.9.2 第二阶段设计:编写Block类 29
1.10 最终设计:编写GameField类和游戏引擎 43
1.11 添加最终修饰 50
1.11.1 关于如何显示下一个方块的编码设计 50
1.11.2 关于游戏暂停方式的编码设计 51
1.11.3 关于窗口重绘的编码设计 52
1.11.4 进一步改进 52
1.12 本章小结 53
1.13 参考文献 54
第2章 .Netterpillars:人工智能和Sprite 55
2.1 面向对象编程 56
2.2 人工智能 58
2.2.1 AI的类型 58
2.2.2 对AI的一般考虑 59
2.2.3 AI的一般技术 59
2.2.4 发挥您的想象力 63
2.2.5 保持可重用的图形库和对象库 63
2.3 Sprite和性能提高技巧 63
2.3.1 Sprite:快速的和透明的 65
2.3.2 编写Sprite类的属性代码 65
2.3.3 Sprite类的Constructor方法 66
2.3.4 Sprite类的Draw方法和Remove方法 68
2.4 游戏开发方案 69
2.5 游戏项目规范 70
2.5.1 定义游戏程序中的类以及Game Engine 71
2.5.2 主程序结构 77
2.5.3 定义游戏界面 78
2.5.4 优化游戏规范 80
2.6 编码阶段 80
2.6.1 第一阶段:对静态对象进行编码 81
2.6.2 第二阶段:对游戏角色进行编码 87
2.6.3 第三阶段:对游戏引擎和冲突检测进行编码 95
2.6.4 第四阶段:对配置界面和游戏终止过程进行编码 99
2.6.5 第五阶段:对Netterpillar AI类进行编码 106
2.7 为游戏添加最后的修饰 111
2.7.1 编写游戏暂停过程的代码 111
2.7.2 使游戏速度维持在控制下 111
2.7.3 改进游戏终止界面 112
2.7.4 编写垃圾收集代码 114
2.8 本章小结 114
第3章 Managed DirectX基础知识:Direct3D基本概念、DirectX与GDI+ 115
3.1 DirectX 116
3.1.1 DirectX的顶层对象 116
3.1.2 理解适配器 117
3.1.3 理解设备 118
3.1.4 理解显示模式 122
3.1.5 创建一个简单的Direct3D程序 122
3.2 3-D坐标系和3-D投影 124
3.2.1 理解矩阵和3-D变换 126
3.2.2 定位camera 128
3.3 Drawing Primitives和Texture 129
3.4 应用程序开发方案 135
3.5 应用程序规范说明 136
3.6 编码阶段 137
3.6.1 第一步:编写主窗口 137
3.6.2 第二步:编写第一个测试窗口 143
3.6.3 第三步:创建一个全屏模式下运行的程序示例 149
3.6.4 第四步:使用透明的纹理图像 151
3.6.5 第五步:改变漫射光色彩 154
3.6.6 第六步:测试矩阵变换 158
3.7 添加最终修饰 164
3.8 关于DirectX和GDI+的更多内容 166
3.9 本章小结 166
第4章 Space Donuts游戏 169
4.1 sprite 170
4.1.1 显示sprite 171
4.1.2 使sprite动起来 173
4.1.3 移动和旋转 176
4.1.4 输入和音效 178
4.2 Space Donuts 181
4.2.1 游戏开发方案 182
4.2.2 游戏规范 182
4.2.3 控制sprite 183
4.2.4 Main事件 190
4.2.5 游戏循环过程 191
4.2.6 进一步改进 197
4.3 本章小结 198
第5章 Spacewar 199
5.1 Spacewar 199
5.2 方法论:使用别人所编写的代码所面临的挑战 201
5.3 使用Application Wizard 201
5.3.1 Main类 203
5.3.2 GameClass类 204
5.3.3 初始化GameClass类 205
5.3.4 游戏的主循环过程 206
5.4 Direct Play 212
5.5 本章小结 219
第6章 Spacewar3D:网格、缓冲区和纹理 221
6.1 DirectX基本知识:Application Wizard 221
6.2 Spacewar3D 232
6.3 游戏开发方案 232
6.4 游戏规范 233
6.4.1 第1步:为Direct3D游戏创建一个简单的shell 233
6.4.2 第2步:创建游戏进入界面 234
6.4.3 第3步:创建游戏环境 237
6.4.4 第4步:行进到外部空间 239
6.4.5 第5步:在空间中移动 247
6.4.6 第6步:为游戏添加ship和音效 251
6.4.7 第7步:为单人游戏添加一个简单的对手形象 259
6.4.8 第8步:添加一个显示窗口来帮助游戏者寻找对手 260
6.4.9 第9步:完成游戏设计 264
6.5 本章小结 266
第7章 为Spacewar3D添加视觉效果 267
7.1 point sprite 267
7.2 第10步:为Spacewar3D添加推进效果 268
7.2.1 定义point sprite的数据 269
7.2.2 处理设备事件 270
7.2.3 更新效果 271
7.2.4 显示效果 272
7.3 第11步:为Spacewar3D添加爆炸效果 276
7.4 第12步:为Spacewar3D添加冲击波效果 277
7.5 本章小结 278
第8章 进一步学习游戏编程 281
8.1 继续学习 281
8.2 编程风格 282
8.2.1 风格一:必须使用源代码管理 282
8.2.2 风格二:当程序失败时知道应该做些什么 283
8.2.3 风格三:知道怎样避免程序失败 284
8.2.4 风格四:寻求网络支持 284
8.2.5 风格五:知道什么能够使游戏更加有趣 285
8.3 补充说明一些内容 285
8.4 愉快的学习历程 287
第9章 附加内容:把.Nettrix游戏移植到Pocket PC 289
9.1 为移动设备创建程序 289
9.1.1 使用.NET创建智能设备应用程序 290
9.1.2 选择运行平台和项目类型 290
9.1.3 把应用程序部署给Emulator 291
9.2 在移动设备上运行桌面PC程序及其操作系统 293
9.3 游戏开发方案 293
9.4 游戏项目规范 294
9.5 编码阶段 295
9.5.1 为Pocket PC修改游戏代码 295
9.5.2 更新GameEngine类 297
9.5.3 更新Square类 298
9.5.4 更新Block类 299
9.5.5 更新游戏窗体 300
9.6 添加最终修饰 304
9.7 本章小结 304
附录A 参考文献 305
附录B 游戏的动机 309
附录C 我是如何设计游戏的 315
附录D 开发成功游戏的指导方针 323
1.1 GDI+基本概念 1
1.1.1 路径梯度 2
1.1.2 α混合 2
1.1.3 基数样条函数 2
1.2 使用Graphics对象执行图形操作 3
1.2.1 使用PaintEventArgs参数创建Graphics对象 4
1.2.2 使用窗口句柄创建Graphics对象 4
1.2.3 从图像中创建Graphics对象 5
1.2.4 从一个指向设备上下文的特定句柄创建Graphics对象 5
1.3 创建梯度 5
1.4 冲突检测 7
1.4.1 限定框算法 7
1.4.2 邻近性检测算法 11
1.5 优化计算量 15
1.5.1 平铺游戏区域 16
1.5.2 位分区 16
1.5.3 位数组分区 18
1.6 把算法扩展到三维图形情况下 19
1.7 游戏开发方案 20
1.8 游戏项目开发 21
1.8.1 类图:最初设计 22
1.8.2 游戏引擎 23
1.8.3 类图:最终设计 24
1.9 编码阶段 25
1.9.1 概略设计:编写Square类 26
1.9.2 第二阶段设计:编写Block类 29
1.10 最终设计:编写GameField类和游戏引擎 43
1.11 添加最终修饰 50
1.11.1 关于如何显示下一个方块的编码设计 50
1.11.2 关于游戏暂停方式的编码设计 51
1.11.3 关于窗口重绘的编码设计 52
1.11.4 进一步改进 52
1.12 本章小结 53
1.13 参考文献 54
第2章 .Netterpillars:人工智能和Sprite 55
2.1 面向对象编程 56
2.2 人工智能 58
2.2.1 AI的类型 58
2.2.2 对AI的一般考虑 59
2.2.3 AI的一般技术 59
2.2.4 发挥您的想象力 63
2.2.5 保持可重用的图形库和对象库 63
2.3 Sprite和性能提高技巧 63
2.3.1 Sprite:快速的和透明的 65
2.3.2 编写Sprite类的属性代码 65
2.3.3 Sprite类的Constructor方法 66
2.3.4 Sprite类的Draw方法和Remove方法 68
2.4 游戏开发方案 69
2.5 游戏项目规范 70
2.5.1 定义游戏程序中的类以及Game Engine 71
2.5.2 主程序结构 77
2.5.3 定义游戏界面 78
2.5.4 优化游戏规范 80
2.6 编码阶段 80
2.6.1 第一阶段:对静态对象进行编码 81
2.6.2 第二阶段:对游戏角色进行编码 87
2.6.3 第三阶段:对游戏引擎和冲突检测进行编码 95
2.6.4 第四阶段:对配置界面和游戏终止过程进行编码 99
2.6.5 第五阶段:对Netterpillar AI类进行编码 106
2.7 为游戏添加最后的修饰 111
2.7.1 编写游戏暂停过程的代码 111
2.7.2 使游戏速度维持在控制下 111
2.7.3 改进游戏终止界面 112
2.7.4 编写垃圾收集代码 114
2.8 本章小结 114
第3章 Managed DirectX基础知识:Direct3D基本概念、DirectX与GDI+ 115
3.1 DirectX 116
3.1.1 DirectX的顶层对象 116
3.1.2 理解适配器 117
3.1.3 理解设备 118
3.1.4 理解显示模式 122
3.1.5 创建一个简单的Direct3D程序 122
3.2 3-D坐标系和3-D投影 124
3.2.1 理解矩阵和3-D变换 126
3.2.2 定位camera 128
3.3 Drawing Primitives和Texture 129
3.4 应用程序开发方案 135
3.5 应用程序规范说明 136
3.6 编码阶段 137
3.6.1 第一步:编写主窗口 137
3.6.2 第二步:编写第一个测试窗口 143
3.6.3 第三步:创建一个全屏模式下运行的程序示例 149
3.6.4 第四步:使用透明的纹理图像 151
3.6.5 第五步:改变漫射光色彩 154
3.6.6 第六步:测试矩阵变换 158
3.7 添加最终修饰 164
3.8 关于DirectX和GDI+的更多内容 166
3.9 本章小结 166
第4章 Space Donuts游戏 169
4.1 sprite 170
4.1.1 显示sprite 171
4.1.2 使sprite动起来 173
4.1.3 移动和旋转 176
4.1.4 输入和音效 178
4.2 Space Donuts 181
4.2.1 游戏开发方案 182
4.2.2 游戏规范 182
4.2.3 控制sprite 183
4.2.4 Main事件 190
4.2.5 游戏循环过程 191
4.2.6 进一步改进 197
4.3 本章小结 198
第5章 Spacewar 199
5.1 Spacewar 199
5.2 方法论:使用别人所编写的代码所面临的挑战 201
5.3 使用Application Wizard 201
5.3.1 Main类 203
5.3.2 GameClass类 204
5.3.3 初始化GameClass类 205
5.3.4 游戏的主循环过程 206
5.4 Direct Play 212
5.5 本章小结 219
第6章 Spacewar3D:网格、缓冲区和纹理 221
6.1 DirectX基本知识:Application Wizard 221
6.2 Spacewar3D 232
6.3 游戏开发方案 232
6.4 游戏规范 233
6.4.1 第1步:为Direct3D游戏创建一个简单的shell 233
6.4.2 第2步:创建游戏进入界面 234
6.4.3 第3步:创建游戏环境 237
6.4.4 第4步:行进到外部空间 239
6.4.5 第5步:在空间中移动 247
6.4.6 第6步:为游戏添加ship和音效 251
6.4.7 第7步:为单人游戏添加一个简单的对手形象 259
6.4.8 第8步:添加一个显示窗口来帮助游戏者寻找对手 260
6.4.9 第9步:完成游戏设计 264
6.5 本章小结 266
第7章 为Spacewar3D添加视觉效果 267
7.1 point sprite 267
7.2 第10步:为Spacewar3D添加推进效果 268
7.2.1 定义point sprite的数据 269
7.2.2 处理设备事件 270
7.2.3 更新效果 271
7.2.4 显示效果 272
7.3 第11步:为Spacewar3D添加爆炸效果 276
7.4 第12步:为Spacewar3D添加冲击波效果 277
7.5 本章小结 278
第8章 进一步学习游戏编程 281
8.1 继续学习 281
8.2 编程风格 282
8.2.1 风格一:必须使用源代码管理 282
8.2.2 风格二:当程序失败时知道应该做些什么 283
8.2.3 风格三:知道怎样避免程序失败 284
8.2.4 风格四:寻求网络支持 284
8.2.5 风格五:知道什么能够使游戏更加有趣 285
8.3 补充说明一些内容 285
8.4 愉快的学习历程 287
第9章 附加内容:把.Nettrix游戏移植到Pocket PC 289
9.1 为移动设备创建程序 289
9.1.1 使用.NET创建智能设备应用程序 290
9.1.2 选择运行平台和项目类型 290
9.1.3 把应用程序部署给Emulator 291
9.2 在移动设备上运行桌面PC程序及其操作系统 293
9.3 游戏开发方案 293
9.4 游戏项目规范 294
9.5 编码阶段 295
9.5.1 为Pocket PC修改游戏代码 295
9.5.2 更新GameEngine类 297
9.5.3 更新Square类 298
9.5.4 更新Block类 299
9.5.5 更新游戏窗体 300
9.6 添加最终修饰 304
9.7 本章小结 304
附录A 参考文献 305
附录B 游戏的动机 309
附录C 我是如何设计游戏的 315
附录D 开发成功游戏的指导方针 323
猜您喜欢