图书前言

前    言

欢迎阅读《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