第0章 简介 1
关于程序设计的预备知识 1
所需硬件和软件配置 1
本书概述 2
本书程序的编译 3
使用程序须知 3
游戏该开始了 3
第一章 游戏程序设计介绍 4
1.1为什么要设计游戏程序 4
1.2游戏程序设计要素 5
游戏设计 5
图形设计 6
声音的生成 6
控制与接口 7
图像处理 7
动画 7
算法 8
人工智能 8
游戏测试 8
1.3小结 9
第二章 计算机游戏图形设计 10
2.1三维图形制作入门 10
2.2如何把二维方块变为三维立方体 13
2.3 偏置粘贴以达到三维视图效果 15
2.4特别的提示和技巧 16
可辨认物体的选择 16
设计图标 16
绘制金属件 17
绘制玻璃器件 17
绘制发光体 18
绘制投影 18
使用有限的颜色进行图形设计 19
平滑图形 19
2.5小结 20
第三章 事件驱动程序设计 21
3.1什么是事件驱动程序 21
3.2开发事件处理程序 21
3.3事件的轮询 22
键盘事件 24
鼠标事件 27
初始化一个鼠标 29
设置鼠标屏幕极限 30
显示和隐藏鼠标指针 31
检索鼠标事件 31
检索单个按钮的操作 33
3.4完整的鼠标类 33
3.5高级鼠标函数 38
3.6事件处理程序 41
3.7小结 43
第四章 图形控制和窗口 44
4.1设计基本窗口 44
4.2基本窗口 45
构造Windw 46
析构Windw 46
画Windw 47
运行Windw 48
基本窗口的程序设计 49
4.3加标题的窗口 52
构造CapWindw 53
绘制CapWindw 53
4.4带有标题的文本窗 54
构造CapTWindw 55
绘制CapTWindw 56
取按钮按下状态 57
4.5按钮窗口 57
构造Button 58
绘制按钮 58
单击按钮 60
4.6 OK窗口 64
构造OKWindw 65
析构OKWindw 65
绘制OK W indw 65
运行OKWindw 66
4.7 Yes/On和Yes/No/Cancel窗口 67
4.8输入窗口 68
绘制Input Windw 69
运行InputWindw 69
4.9窗口类的头文件和实现文件 73
4.10小结 92
第五章 Life游戏 93
5.1 Life史话 93
5.2 Life规则 93
5.3 Life的实现 94
5.4速度问题 95
5.5链表 95
5.6面向对象的链表 98
5.7细胞链表 102
5.8 Life程序 108
5.9研究Life程序 109
5.10 Life程序清单 123
5.11小结 137
第六章 加载和显示图片 138
6.1坏消息 138
6.2 PCX图片文件格式 138
6.3打开一个PCX文件 140
6.4文件压缩 141
6.5显示PCX图片 143
6.6 PCX类 147
6.7小结 158
第七章 创建游戏图像 159
7.1 Turbo C十+的图像格式 159
7.2 Image Machine 160
7.3使用Image Machine 180
7.4编程设计Image Machine 184
事件循环 184
事件分配程序 185
改变颜色的函数 186
图像选择线 187
BGI图像 188
7.5小结 190
第八章 Dragonlord(龙的主人) 191
8.1玩Dragonlord游戏 191
购买物品 192
在地牢内移动 195
发现地牢中的物体 195
8.2设计Dragonlord程序 198
新的窗口类 248
地牢图 248
处理图形 249
游戏的初始化 250
移动游戏者 252
生成声音效果 261
8.3小结 262
第九章 纸牌游戏 264
9.1纸牌处理函数 264
9.2 Card类 264
9.3 Deck类 266
9.4实现Card和Deck类 269
9.5演示Card和Deck类 281
9.6使用Deck类 285
9.7有人玩Blackjack海盗旗)吗? 287
9.8 BlackJack程序设计 293
9.9小结 294
第十章 Poker Squares(扑克方阵 295
10.1玩Poker Squares 295
10.2设计Poker Squares程序 297
10.3高分文件 323
10.4小结 323
第十一章 Battle Bricks(碰砖游戏) 325
11.1玩Battle Bricks游戏 325
11.2编写Battle Bricks的程序 326
减慢游戏的速度 326
球的运动 327
完成球引发的动作 329
击中一块砖 333
摧毁砖 336
生成声音而不停止动作 338
移动球棒 339
摧毁墙壁 340
11.3完整的程序 341
11.4小结 362
第十二章 Crystals(晶体) 363
12.1介绍Crystals 363
12.2玩Crystals 363
12.3设计Crystals程序 365
生成计算机游戏者 365
设计计算机策略的程序 366
处理分数数组 370
对计算机游戏者采用递归算法 372
选择移动 372
12.4 Crystals的程序清单 373
12.5小结 399
附录A 面向对象的程序设计教程 400
A.1从开关到对象 400
A.2一种明显而卓越的方案 400
A.3面向对象的程序设计 401
封装 401
作为数据类型的类 407
头文件和实现文件 407
继承 408
多态性 410
A.4面向对象的和C十十的程序设计用法和格式 413
什么时候用虚拟函数 413
类从一般的到特殊的 413
A.5单实例类 417
A.6小结 418
附录B DOS窗口类速查表 419
B.1 Windw 419
数据成员 419
成员函数 419
继承的数据成员 420
继承的成员函数 420
B.2 CapWindw<—Windw 420
数据成员 420
成员函数 420
继承的数据成员 421
继承的成员函数 421
B.3 CapTWindw<—CapWindw<—Windw 421
数据成员 421
成员函数 421
继承的数据项 421
继承的成员函数 422
B.4 OKWindw<—CapTWindw<—CapWindw<—Windw 422
数据项 422
成员函数 422
继承的数据成员 422
继承的成员函数 422
B.5 YesNoWindw<—CapTWindw<—CapWindw<—Windw 423
数据成员 423
成员函数 423
继承的数据项 423
继承的成员函数 423
B.6 YewNoCanWindw<—CapTWindw<—CapWindw<—Windw 424
数据成员 424
成员函数 424
继承的数据项 424
继承的成员函数 424
B.7 InputWindw<—CapTWindw<—CapWindw<—Windw 425
数据项 425
成员函数 425
继承的数据项 425
继承的成员函数 425
B.8 Button<—Windw 426
数据项 426
成员函数 426
继承的数据项 426
继承的成员函数 426