前 言
欢迎阅读《C++游戏与图形编程基础》第2版。本书讲授了传统的C++入门课程主题,讲解了如何用App Game Kit库进行游戏开发。学生将用Microsoft Visual C++编写传统的、基于控制台的程序。打好基础后,就开始学习用App Game Kit库写简单的C++程序和使用图形和动画的程序。所有例子和作业都经过我们精心设计,旨在激发学生的学习兴趣,使他们在整个学期中都能保持学习热情。
新增内容
第2版对第1版进行了全面修订。第1版的审阅者普遍反映学生需要掌握更多的标准C++知识才能更好地适应将来的课程。为此,第2版划分为两部分。
* 第Ⅰ部分(第1章到第6章)讨论使用标准C++进行过程式编程的基础知识。
* 第Ⅱ部分(第7章到第11章)讨论使用C++和App Game Kit进行图形和游戏编程。第Ⅱ部分还讨论了文件I/O和面向对象编程。
第2版还用App Game Kit Tier 2取代了上一版的Dark GDK。它是The Game Creators推出的最新开发环境,除了能开发Windows游戏,还支持多种智能手机和平板设备的游戏开发。App Game Kit分为两个Tier(每个Tier都是一个独立的产品)。
* Tier 1支持BASIC风格的编程语言。
* Tier 2提供Tier 1的一切,还提供兼容Microsoft Visual C++ 2010的C++库。本书第Ⅱ部分将使用这个Tier。(虽然App Game Kit是商业产品,但The Game Creators提供了免费试用版本。试用版无时间限制,但会在屏幕上显示一个很小的水印。使用试用版和商业版都能完成本书的学习。)
本书配套网站提供一组在网上观看的VideoNote(视频讲解),对重要主题进行了简单解释。
需要的软件
为了顺利使用本书,需要准备以下软件和文件。
* Microsoft Visual C++ 2010
请参见附录A,从网上免费下载Microsoft Visual C++ 2010 Express。
* App Game Kit (AGK) Tier 2
必须从The Game Creators 网站下载和安装App Game Kit Tier 2。详情参见附录A。
* 示例源代码和媒体文件
本书源代码和所有必要的图形文件、声音文件和游戏案例分析可以从译者博客(transbot.blog.163.com)下载。详情参见附录A。
各章内容
第Ⅰ部分 标准C++入门
第1章 计算机和编程概论
本章具体而全面地解释了计算机是如何工作的,数据是如何存储的,为什么要用高级语言写程序。循序渐进的教程将指导学生使用Visual C++进行编程。
第2章 C++基础知识
本章解释如何编写简单C++程序来显示输出、收集输入和执行计算,介绍了变量、数据类型和命名常量。学习如何使用流输入和输出,如何写数学表达式。
第3章 判断结构和布尔逻辑
本章讨论关系运算符和布尔表达式,展示如何用判断结构控制执行流程,介绍if,if-else和if-else-if 语句,还讨论了嵌套判断结构、逻辑运算符和switch语句。
第4章 重复结构
本章讨论如何使用while,do-while和for循环创建重复结构,展示了计数器、累加器和累加值的概念。
第5章 函数
本章解释如何编写和调用void函数,展示用函数对程序进行模块化的好处,然后,将讨论如何向函数传递实参,讨论传值和传引用的问题,还讨论了局部和全局变量和常量。最后,本章讨论了如何写返回值的方法。
第6章 数组
本章讨论如何创建和使用一维和二维数组。提供大量数组处理的例子,包括如何对数组中的值进行求和、求平均值和求最大/最小值。还讨论了平行数组编程技术。
第Ⅱ部分 C++和AGK游戏编程基础
第7章 通过App Game Kit进行C++编程
本章讨论如何使用Visual C++和App Game Kit (AGK) Tier 2进行程序开发。首先介绍用AGK写的C++程序的基本结构。重点讨论了用于控制游戏中的所有行动的游戏循环。讨论了AGK使用的屏幕坐标系统。还讨论了如何加载图形文件,如何创建可在屏幕上显示和操作的精灵。还讨论了如何用RGB颜色系统生成颜色,如何用alpha通道决定透明度。还将介绍用于显示文本和生成随机数的简单AGK函数。
第8章 输入、动画和声音
本章介绍如何在用AGK开发的游戏或其他程序中获取用户输入。讲述了如何使用各种函数和编程技术来获取鼠标、虚拟按钮、虚拟控制杆和键盘输入。然后,本章讨论了如何使用动画精灵和纹理图集来显示动画,如何在程序中播放音乐和声音。本章最后展示BugZapper游戏,玩家要在游戏中快速点击随机出现的虫子。
第9章 文本、碰撞和“坏秃鹰”游戏
本章首先讨论文本对象,它能使开发者更好地控制AGK窗口中显示的文本。接着讨论精灵之间的碰撞检测,用名为PizzaBot的简单游戏进行演示。然后,讨论如何执行计算来模拟物体落地过程。最后将综合运用这些知识来开发“坏秃鹰”游戏。这是一个高品质的视频游戏,集成了前面所学的所有编程技巧。
第10章 在AGK中使用文件和数组
本章首先讨论如何使用AGK文件函数来进行顺序文件输入和输出。例子包括在文件中存储一系列随机颜色,保存游戏最高分,写入日志文件。接着,本章讨论如何用数组容纳精灵或图片索引,展示模拟发牌、洗牌和排序的过程。本章还演示了如何用二维数组将tile(图块)映射到屏幕来生成游戏背景。
第11章 面向对象编程
本章对过程式编程和面向对象编程进行对比,讨论了类和对象的基本概念,还讨论了成员变量、成员函数、访问规范、构造函数、取值函数和赋值函数。本章还介绍了继承的概念,展示了名为Balloon Target的面向对象游戏示例。
附录 下载和安装必要的软件
指导读者下载和安装使用本书要求的软件和文件。
本书特色
概念:每个重要的小节都以一句概念陈述开头,简明扼要总结本节要点。
示例程序:每章都提供许多完整或不完整的示例程序,每个都经过精心设计,帮助读者巩固对当前主题的理解。
实战演练:本书有许多“实战演练”小节,它们将指导读者将特定的编程技术应用于特定的应用程序。
? 知识检查点 这些检查点散布于每一章,旨在检测学生是否已经掌握一个主题。
综合测验:每一章都包含一套全面和多样化的“综合测验”,包括选择题、判断对错、简答题和算法训练。
编程练习:每一章最后都包含一系列“编程练习”,旨在巩固学生对本章知识点的掌握。
配套资源
Microsoft Visual Studio 2010 Express
这个IDE可以从网上免费下载。详情参见附录A。
网上资源
请从译者网站下载原书配套资源,请访问transbot.blog.163.com或transbot.ys168.com:
* 本书示例程序的源代码
* 学生项目要用到的图形和声音文件
* 关键主题的“视频讲解”链接
* “知识检查点”答案
教师资源
以下资源提供给提出教学资源申请的认证教师:
* “综合测验”答案
* “编程练习”的解决方案
* 每一章的PowerPoint演示文稿
请访问Pearson Instructor Resource Center(www.pearsonhighered.com/irc),或者发送邮件至computing@pearson.com,了解如何获取这些资源。也可发送邮件至coo@netease.com,或QQ联系以获得相关支持:506193994。
致谢
感谢The Game Creators开发了App Game Kit,这是一个功能强大的游戏开发平台,对初学者来说足够简单。感谢Christopher Rich对本书的贡献。他在本书后半部分的投入,对App Game Kit的了解以及在原画和其他方面的贡献为本书增色不少。谢谢你,Chris!
感谢培生教育出版集团的每个人,是你们使我们这个系列(Starting With)取得了极大成功。经过多年与培生教育出版集团的团队的紧密合作,我已视你们为最亲密的朋友。尤其要感谢我的编辑Matt Goldstein。他和编辑助理Emma Snider在本书的写作过程中一直给予我无微不至的关怀。还要感谢营销总监Yez Alyan和营销协调人Kathryn Ferranti,他们的努力使本书在学术界赢得了良好的口碑。Kayla Smith Tarbox领导的生产团队不知疲倦地努力工作,并最终将这本书付梓下印。谢谢你们各位!
IV C++游戏与图形编程基础(第2版)
前言 XI