编辑推荐
    内容丰富、全面,其中的通用代码可直接应用于一般的游戏。每款游戏实例均提供详细的设计思路、关键技术分析以及具体的解决步骤方案。每一个游戏实例都是活的、实用的Flash游戏编程实例。
      内容简介
   内容丰富、全面,其中的通用代码可直接应用于一般的游戏。每款游戏实例均提供详细的设计思路、关键技术分析以及具体的解决步骤方案。每一个游戏实例都是活的、实用的Flash游戏编程实例。
     作者简介
   本书是一本面向广大Flash编程爱好者的游戏设计类图书。本书从*基本的Flash游戏编程语言基础知识开始,对游戏的原理及其Flash程序实现进行了详细介绍,包括编程语言基础、面向对象编程基础、影片剪辑的控制、文本交互、鼠标和键盘事件的处理等。本书的*大特色是通过具体案例讲解Flash游戏开发,不仅可以加深读者对知识点的掌握,更重要的是可以让读者学会如何开发Flash游戏。本书涉及的游戏都是大家耳熟能详的,例如连连看、推箱子、对对碰、超级玛丽、象棋、2.5D游戏、FlappyBird、塔防游戏等。通过本书,让学习枯燥的Flash编程充满乐趣。对于初、中级的Flash学习者来说,本书是一种很好的参考资料,不仅为读者列出了完整的游戏代码,同时对所有的源代码进行了非常详细的解释,做到了通俗易懂、图文并茂。 
本书适用于游戏编程爱好者、程序设计人员和Flash编程学习者。     
目录
   目录     
第1章Flash的基础知识  
1.1初识Flash CS6  
1.1.1Flash的发展历程  
1.1.2动画的概念及原理  
1.1.3Flash动画的特点  
1.1.4Flash CS6工作界面  
1.2图形制作  
1.2.1手工绘图工具  
1.2.2图形工具  
1.2.3颜色工具  
1.2.4文本工具  
1.2.5Deco工具  
1.2.63D旋转工具和3D平移工具  
1.3元件和库  
1.3.1元件的类型  
1.3.2创建元件  
1.3.3库  
1.4基本动画制作  
1.4.1逐帧动画  
1.4.2传统补间动画  
1.4.3补间形状动画  
1.4.4补间动画  
1.4.5动画预设  
1.5高级动画制作  
1.5.1创建运动引导层动画  
1.5.2创建遮罩动画  
1.5.3创建骨骼动画  
第2章ActionScript 3.0脚本编程语言基础  
2.1ActionScript 3.0发展概述  
2.2Flash CS6的“动作”面板介绍  
2.3ActionScript的语法  
2.4ActionScript的数据类型和变量  
2.4.1ActionScript的数据类型  
2.4.2ActionScript的变量  
2.5ActionScript的运算符与表达式  
2.6ActionScript的函数  
2.6.1认识函数  
2.6.2定义函数  
2.6.3函数返回值  
2.6.4函数调用  
2.6.5函数的参数  
2.6.6函数作为参数  
2.7类和包  
2.8显示列表  
2.8.1显示对象的一些基本概念  
2.8.2DisplayObject类的子类  
2.8.3管理显示对象  
2.9事件  
2.9.1与鼠标相关的操作事件  
2.9.2与键盘相关的操作事件  
2.9.3帧事件  
2.9.4计时事件  
2.9.5删除事件侦听器  
2.9.6事件流  
2.10动作脚本基本命令  
2.10.1时间轴控制命令  
2.10.2显示输出命令  
2.11ActionScript代码的位置  
2.11.1在帧中编写ActionScript程序代码  
2.11.2在外部类文件中编写ActionScript程序代码  
2.11.3一个简单的Flash应用程序  
第3章ActionScript 3.0程序控制  
3.1选择结构  
3.1.1if语句  
3.1.2if�瞖lse语句  
3.1.3switch语句  
3.2循环结构  
3.2.1for语句  
3.2.2for�瞚n和for each�瞚n语句  
3.2.3while语句  
3.2.4循环的嵌套  
3.2.5break和continue语句  
3.3影片剪辑的控制  
3.3.1影片剪辑元件的基本属性  
3.3.2控制影片剪辑元件的时间轴  
3.3.3复制与删除影片剪辑  
3.3.4拖曳影片剪辑  
3.4鼠标、键盘和声音的控制  
3.4.1鼠标的控制  
3.4.2键盘的控制  
3.4.3声音的控制  
3.5Flash的文本交互  
3.5.1文本类型  
3.5.2文本实例名称  
第4章面向对象编程基础  
4.1对象和类  
4.1.1创建自定义的类  
4.1.2类的构造函数  
4.1.3类的属性的访问级别  
4.1.4get() 和set()方法  
4.2继承  
4.2.1继承的定义  
4.2.2属性和方法的继承  
4.2.3重写  
4.2.4MovieClip和Sprite 子类  
4.3多态  
4.4包外类  
4.5链接类  
4.6文档类  
4.7动态类  
第5章数组与字符串  
5.1数组  
5.1.1数组新增元素  
5.1.2删除数组中的元素  
5.1.3数组排序  
5.1.4从数组中获取元素  
5.1.5数组转换为字符串  
5.1.6多维数组  
5.2字符串  
5.2.1字符串的定义  
5.2.2提取子字符串  
5.2.3字符串的拆分和合并  
5.2.4获取字符串指定位置的字符  
5.2.5在字符串中搜索  
5.2.6字符串的大小写转换  
5.2.7字符串的比较和排序  
第6章ActionScript的绘图功能  
6.1Graphics类  
6.2绘制图形  
6.2.1画线  
6.2.2画曲线  
6.2.3画矩形  
6.2.4画圆  
6.2.5画椭圆  
6.3位图处理  
6.3.1Bitmap类和BitmapData类  
6.3.2复制位图里的部分像素  
6.3.3使用BitmapData类滚动位图  
第7章拼图游戏  
7.1拼图游戏介绍  
7.2拼图游戏的设计思路  
7.2.1制作3×3图块  
7.2.2随机排列图块  
7.2.3键盘输入信息的获取  
7.2.4移动图块的方法  
7.2.5判断拼图是否完成的方法  
7.3拼图游戏的设计步骤  
7.3.1创建Flash文件  
7.3.2设计文档类  
第8章连连看游戏  
8.1连连看游戏介绍  
8.2连连看游戏的设计思路  
8.2.1连连看游戏的数据模型  
8.2.2动物方块的布局  
8.2.3连通算法  
8.2.4智能查找功能的实现  
8.3关键技术  
8.3.1使用ActionScript 3.0 删除容器的所有子对象  
8.3.2Point 对象  
8.4连连看游戏的设计步骤  
8.4.1创建Flash文件  
8.4.2设计LinkType类  
8.4.3设计文档类  
第9章看图猜成语游戏  
9.1看图猜成语游戏介绍  
9.2看图猜成语游戏的设计思路  
9.2.1游戏素材  
9.2.2设计思路  
9.3看图猜成语游戏的设计步骤  
9.3.1创建Flash文件  
9.3.2设计影片剪辑  
9.3.3动作脚本  
9.3.4设计文字方块类(Letter.as)  
第10章雷电飞机射击游戏  
10.1雷电飞机射击游戏介绍  
10.2雷电飞机射击游戏的设计思路  
10.2.1游戏素材  
10.2.2地图滚动的实现  
10.2.3飞机和子弹的实现  
10.2.4主角飞机子弹与敌机的碰撞检测  
10.3雷电飞机射击游戏的设计步骤  
10.3.1创建Flash文件  
10.3.2动作脚本  
第11章扑克牌金字塔游戏  
11.1扑克牌金字塔游戏介绍  
11.2扑克牌金字塔游戏的设计思路  
11.2.1游戏素材  
11.2.2设计思路  
11.3扑克牌金字塔游戏的设计步骤  
11.3.1创建Flash文件  
11.3.2设计Card类  
11.3.3设计文档类  
第12章黑白棋游戏  
12.1黑白棋游戏介绍  
12.2黑白棋游戏的设计思路  
12.2.1棋子和棋盘  
12.2.2翻转对方的棋子  
12.2.3显示执棋方的可落子位置  
12.2.4判断胜负功能  
12.3黑白棋游戏的设计步骤  
12.3.1创建Flash文件  
12.3.2设计文档类  
第13章汉诺塔游戏  
13.1汉诺塔游戏介绍  
13.2汉诺塔游戏的设计思路  
13.3关键技术  
13.3.1盘子影片剪辑对象的拖动  
13.3.2加载n个盘子对象  
13.3.3递归解决汉诺塔盘子移动  
13.3.4以动画效果移动盘子  
13.4汉诺塔游戏的设计步骤  
13.4.1创建Flash文件  
13.4.2设计文档类  
第14章对对碰游戏  
14.1对对碰游戏介绍  
14.2对对碰游戏的设计思路  
14.2.1游戏素材  
14.2.2设计思路  
14.2.3动态生成有效的8×8方块  
14.2.4寻找3个匹配的方块  
14.2.5上方的方块下落  
14.2.6在本列上方添加方块  
14.2.7查找可能的移动  
14.3对对碰游戏的设计步骤  
14.3.1创建Flash文件  
14.3.2设计文档类  
第15章Flappy Bird游戏  
15.1Flappy Bird游戏介绍  
15.2Flappy Bird游戏的设计思路  
15.3Flappy Bird游戏的设计步骤  
15.3.1创建Flash文件  
15.3.2设计游戏文档类(flappybird.as)   
        精彩书摘
   第3章ActionScript 3.0程序控制 
众所周知,Flash中的动画依靠的是时间轴,在没有脚本的情况下,动画会依照时间轴从第1帧不停地播放到最后一帧,然后重复播放或者停止。为了能更好地控制动画,必须使用脚本语句。如果想使动画具有逻辑判断的功能,则要使用流程控制语句了。 
一般情况下,Flash执行动作脚本从第一条语句开始,然后按顺序执行,直至达到最后的语句。这种按照语句排列方式逐句执行的方式称为顺序结构。顺序结构是程序中使用最多的程序结构,但用顺序结构只能编写一些简单的动作脚本,解决一些简单的问题。 
在实际应用中往往有一些需要根据条件来判断结果的问题,条件成立是一种结果,条件不成立又是一种结果。像这样的复杂问题的解决就必须用程序的控制结构,控制结构在程序设计中占有相当重要的地位,通过控制结构可以控制动作脚本的流向,完成不同的任务。 
3.1选择结构  
选择结构在程序中以条件判断来表现,根据条件判断的结果执行不同的动作。ActionScript 3.0有3个可用来控制程序流的基本条件语句,分别为if语句、if�瞖lse语句、switch语句。本节将详细讲解这3种不同的选择程序结构。 
3.1.1if语句   
if (条件表达式){  
//在条件成立的情况下执行{}中的语句,否则跳过{}执行后面的语句  
}  
例如:  
var a:unit=12;  
if (a%2==0)  
trace(a,"是偶数."); 
在条件表达式中,取模运算符“%”的优先级高于“==”,所以先计算“a%2”,然后判断它的值是否等于0。当条件为真时执行trace()语句输出相关信息,由于需要执行的代码只有一行,所以可以不用大括号,如果需要执行的代码只有一个语句段,必须把所有需要执行的语句都放在一对大括号内。 
3.1.2if�瞖lse语句 
if�瞖lse语句在简单if语句的基础上增加了一个程序分支,这种语句的一般形式如下:  
if (条件表达式) {  
① …  
}//条件成立,执行①内的语句  
else {  
② …  
}//条件不成立,执行②内的语句  
例如:  
var a:unit=12;  
if (a%2==0)  
trace(a,"是偶数。");  
else  
trace(a,"是奇数.");  
if�瞖lse语句执行的操作最多只有两种选择,如果要有更多的选择,可以使用if�瞖lse if�瞖lse语句。        
前言/序言
   前言     
Flash因其文件小、性能优异而得到全球网民的青睐,这也使得Flash成为网络休闲游戏开发的首选平台。游戏开发融合了很多技术与表现风格,除了要有高质量的代码、迷人的艺术设计和良好的用户界面,更重要的一点是要让玩家觉得好玩。 
本书作者长期从事Flash教学与应用开发,在长期的工作、学习中积累了丰富的经验和教训,了解在学习编程时什么样的书能提高Flash游戏开发能力,使读者以最少的投入收获最大的实际成果。 
本书内容: 讲解Flash的基础知识,例如图层、帧、元件、实例、影片剪辑、“库”面板、“属性”面板、各种绘图工具及其使用技巧; 讲解ActionScript 3.0编程技术和技巧,例如如何利用Flash和ActionScript 3.0制作交互式游戏、平台类游戏,有利于读者学会面向对象的游戏设计技术,了解ActionScript 3.0程序设计的所有相关内容。本书游戏实例涵盖了益智、射击、棋牌、休闲、网络等游戏。 
本书特点: 内容丰富、全面,其中的通用代码可直接应用于一般的游戏。每款游戏实例均提供了详细的设计思路、关键技术分析以及具体的解决方案。每一个游戏实例都是实用的Flash游戏编程实例。 
本书是帮助读者自娱自乐、创造美好生活、步入Flash游戏程序员行列的敲门砖。 
需要说明的是,学习游戏动画编程是一个实践的过程,而不仅仅是看书、看资料的过程,亲自动手编写、调试程序才是至关重要的。通过实际的编程以及积极的思考,读者可以很快地掌握很多的编程技术,而且在编程中读者会积累许多宝贵的编程经验。在当前的软件开发环境下,这种编程经验对开发者尤其显得不可或缺。 
本书由夏敏捷和杨要科(中原工学院)主持编写,张西广编写第2章,徐飞编写第3章,杨要科编写第8~12章,王佩雪编写第16章,张俊宝编写第20章和第21章,其余章节由夏敏捷编写。在本书的编写过程中,为确保内容的正确性,参阅了很多资料,并且得到了中原工学院计算机学院郑秋生教授和资深Flash程序员的支持,在此谨向他们表示衷心的感谢。 
由于编者水平有限,书中难免有不足之处,敬请广大读者批评指正,在此表示感谢。 
编者电子信箱: jsjjc_33@163.com。 
夏敏捷2017年10月          
				
 
				
				
					《Flash ActionScript 3.0 游戏设计(Flash CS6 版)》:不止于代码,更是游戏创意的孵化器  这本书不仅仅是一本关于 Flash ActionScript 3.0 编程的教程,它更是一扇通往互动娱乐世界的大门,一次深入探究游戏设计灵魂的旅程。如果你渴望将脑海中那些奇思妙想转化为生动有趣、引人入胜的互动体验,那么这本书将是你不可或缺的伙伴。我们不会止步于枯燥的代码语法,而是将你引领至游戏设计的广阔天地,从概念的萌芽到成品的诞生,让你掌握将创意转化为现实的艺术。  第一部分:奠定坚实基础,为创意注入生命力  在开始构建宏伟的游戏世界之前,扎实的基础是至关重要的。本书将从 ActionScript 3.0 的核心概念入手,但绝非流于表面。我们会深入剖析其面向对象特性,理解类、对象、继承和多态等概念如何构建起游戏的骨骼。你将学会如何利用事件驱动模型来响应用户的输入,无论是鼠标的点击、键盘的敲击,还是触摸屏的滑动,都将成为你指挥游戏世界的语言。     对象与类:积木般的构建块     我们不仅仅会介绍 `class` 和 `object` 的定义,更会通过一系列由浅入深的示例,让你体会到面向对象设计在游戏开发中的强大威力。你将学习如何为游戏中的角色、道具、敌人等设计各自的“蓝图”(类),并通过实例化这些蓝图来创建游戏世界中的具体元素(对象)。例如,如何创建一个 `Player` 类,包含生命值、移动速度、攻击力等属性,并赋予其 `move()`、`attack()` 等行为。我们还会探讨封装、继承和多态如何帮助你编写出更具可维护性和扩展性的代码,让你在游戏迭代升级时游刃有余。     事件驱动:与玩家的实时对话     游戏的核心在于互动,而事件驱动正是实现这种互动的重要机制。你将学习如何捕捉和处理各种用户交互事件,如 `MouseEvent`(鼠标事件)、`KeyboardEvent`(键盘事件)和 `TouchEvent`(触摸事件)。理解事件流的传播机制,如何使用事件监听器来响应玩家的操作,将是编写动态游戏逻辑的关键。本书将通过实例演示,教你如何响应玩家按下某个键来控制角色移动,或者点击某个按钮来触发技能释放。     显示列表与图形绘制:构建视觉的奇幻世界     一款游戏,首先映入眼帘的是其视觉表现。我们将深入探讨 Flash 显示列表的层级结构,理解 `DisplayObjectContainer`、`DisplayObject`、`Sprite` 和 `MovieClip` 等核心类的作用。你将学会如何创建、添加、移除和管理屏幕上的各种显示对象,包括位图、矢量图形和文本。我们还将探索 AS3.0 提供的强大图形绘制 API,让你能够动态地在屏幕上绘制线条、形状、填充颜色,甚至实现简单的粒子效果,为你的游戏世界增添生动的色彩。     动画与过渡:赋予生命律动     静态的画面无法吸引玩家,动画是赋予游戏生命的关键。你将学习如何利用 `TweenLite`、`TweenMax` 等流行的补间动画库,轻松实现平滑的对象移动、旋转、缩放和淡入淡出等动画效果。我们将探讨帧动画的制作与控制,以及如何结合代码来创造出更复杂、更具表现力的动画序列,让你的游戏角色栩栩如生。  第二部分:揭秘游戏核心机制,掌握设计之道  在掌握了 ActionScript 3.0 的基础之后,我们将正式踏入游戏设计的核心领域。本书将带领你逐一攻克那些构成游戏趣味性的关键要素,让你理解“为什么”某个设计会有效,而不仅仅是“怎么做”。     游戏循环与状态管理:游戏的脉搏     每一款运行中的游戏都有一个持续运转的“心跳”——游戏循环。你将学习如何构建高效的游戏循环,负责每一帧的更新、绘制和逻辑处理。同时,我们还会深入探讨游戏状态管理的重要性,如何定义和切换游戏的不同阶段,例如主菜单、游戏进行中、暂停、游戏结束等,确保游戏流程的顺畅与逻辑的清晰。     物理引擎与碰撞检测:真实世界的模拟     让游戏中的物体能够自然地互动,是提升游戏真实感和趣味性的重要手段。我们将介绍如何运用 AS3.0 内置的碰撞检测机制,实现如角色与墙壁的碰撞、子弹与敌人的碰撞等。对于更复杂的物理模拟,我们还会探讨如何集成第三方物理引擎,如 Box2D AS3,让你能够轻松实现重力、弹性、摩擦力等物理效果,让你的游戏世界充满活力。     AI(人工智能)基础:让敌人不再呆板     缺乏智能的敌人会让游戏变得乏味。本书将为你揭示游戏 AI 的入门概念,包括路径寻找(如 A 算法)、状态机(有限状态机 FSM)等,让你能够为游戏中的 NPC(非玩家角色)和敌人赋予基本的智能行为。你将学会如何让敌人巡逻、追击玩家、躲避障碍,甚至展现出一定的战术思考,让游戏更具挑战性。     关卡设计与流程控制:引导玩家的冒险     一个好的关卡设计能够巧妙地引导玩家,提供恰当的挑战和奖励。我们将讨论关卡设计的原则,如何通过地形、障碍物、敌人布局和道具的放置来构建引人入胜的游戏体验。你还将学习如何实现关卡之间的切换和进度保存,让玩家的冒险能够持续进行。     音效与音乐:渲染氛围的魔法     视听是游戏不可分割的整体。本书将指导你如何使用 AS3.0 加载和播放音效和背景音乐,通过恰当的音效反馈来增强玩家的操作感,通过富有感染力的背景音乐来渲染游戏氛围,让你的游戏更具沉浸感。  第三部分:实践出真知,打造你的专属游戏  理论与实践相结合才能真正掌握技能。本书的重头戏在于一系列精心设计的实战项目,涵盖不同类型的游戏,让你在动手实践中巩固所学知识。     经典街机游戏重现:     我们将从一些经典的街机游戏入手,例如《打砖块》、《太空侵略者》或《贪吃蛇》。通过重现这些耳熟能详的游戏,你将深入理解游戏循环、碰撞检测、得分系统、生命值管理等基本的游戏设计模式。这些项目将帮助你快速建立起对游戏开发流程的整体认识。     平台跳跃游戏开发:     探索角色控制、重力模拟、跳跃机制、平台交互和敌人AI的设计。你将学习如何处理复杂的角色动画,实现流畅的角色移动和跳跃,并设计具有一定挑战性的关卡。     射击类游戏入门:     掌握子弹发射、敌人生成、瞄准机制、伤害计算和多种武器系统的实现。你将体验设计紧张刺激的战斗场景,并学习如何管理大量的游戏对象。     解谜与策略类游戏探索:     学习如何设计逻辑谜题、状态切换、资源管理和回合制战斗。这些项目将拓展你的游戏设计思路,让你理解不同类型游戏的核心玩法。  贯穿全书的亮点:     Flash CS6 特色应用: 本书充分利用 Flash CS6 的强大功能,包括其直观的舞台设计、强大的动画工具和便捷的资源管理,让你能够高效地进行游戏开发。你将学习如何将 Flash CS6 中的图形和动画资源 seamlessly 集成到你的 ActionScript 3.0 代码中。    代码质量与优化: 我们不仅关注功能的实现,更强调代码的可读性、可维护性和性能优化。你将学习到编写清晰、模块化代码的技巧,以及如何避免常见的性能陷阱,确保你的游戏流畅运行。    学习路径清晰: 从基础概念到高级技巧,再到实际项目,本书的学习路径循序渐进,确保每一个读者都能稳步提升。    丰富示例与讲解: 每一个概念的提出都会伴随清晰的代码示例和详细的文字讲解,让你能够彻底理解其背后的原理和应用。    不止于模仿: 虽然我们提供实例项目,但我们更鼓励你发挥创意,在这些项目的基础上进行二次开发,加入自己的独特想法,创造出独一无二的游戏。  《Flash ActionScript 3.0 游戏设计(Flash CS6 版)》是一本为你量身打造的指南,它将带你领略 ActionScript 3.0 的强大之处,掌握游戏设计的核心理念,并最终 empower 你成为一名真正的游戏创作者。从今天起,让你的游戏梦想照进现实,开始这段激动人心的冒险吧!