新書推薦:
《
世界四大博物馆4册套装 卢浮宫大英大都会艾尔米塔什博物馆 青少年游学艺术参观科普书
》
售價:NT$
694.0
《
艺术家之路 塑造插画风格
》
售價:NT$
759.0
《
古乐钩沉(中国音乐学院60周年校庆中青年学者文集)
》
售價:NT$
602.0
《
我和抑郁症的3000天
》
售價:NT$
301.0
《
与骸骨交谈:我希望每一个真相都被发现
》
售價:NT$
347.0
《
人体使用手册3:自愈力的逻辑(全面解读身体面对疾病时的反应逻辑,学习更多有效的系列家庭按摩)
》
售價:NT$
281.0
《
素描简史:从文艺复兴到现代艺术
》
售價:NT$
1989.0
《
智慧宫丛书028·神工智能 诸神与古代世界的神奇造物
》
售價:NT$
398.0
|
內容簡介: |
本书涵盖了Flash 游戏设计中的所有基础主题,包括游戏图形的制作、AS3.0
语法基础、事件机制、碰撞检测、物理模拟、滚屏系统、AI(人工智能)基础,以及嵌入游戏音效。
对于每一章的内容,在本书的随书源代码中都提供了完整的代码和可运行的示例。读者可以跟随作者的思路,从最简单的游戏开始循序渐进地向前推进,最终构建出比较大型的Flash
游戏。
由于本书的原作者本身就是一位高校的老师,因此,本书的内容由浅入深,知识丰富,非常适合读者自学或者作为高等学校的教材使用。
|
關於作者: |
RexvanderSpuy,是一名自由职业者、交互媒体设计师,擅长FlashAS3.0游戏设计、界面设计,以及ActionScript编程。他目前主要在加拿大、印度、南非这些地方游走。在不用编写视频游戏代码的时候,他会一边弹着锡塔尔琴,一边周游世界。
|
目錄:
|
第1章编程基础:如何制作视频游戏
1.1基本要求
1.1.1一台计算机
1.1.2图形设计软件
1.1.3计算机编程软件
1.1.4AdobeFlashProfessional
1.2你需要知道的东西
1.3你不需要知道的东西
1.4一切都与编程有关
1.5编程?可是我的数学很烂!
1.6我已经知道怎么编程了!
1.6.1我能制作何种类型的游戏?
1.6.2学习新术语
1.6.3打好基础...
1.7使用FlashBuilder
1.7.1设置FlashBuilder的工作环境
1.8编写你的第一个程序
1.9ActionScript文件和.as扩展名
1.10开始编程!
1.10.1关于sprite的一点小魔法
1.10.2不要忽略类!
1.10.3使用构造方法
1.10.4对齐代码
1.11您的指令是什么?
1.12为代码添加注释
1.13运行你的程序并编译SWF文件
1.13.1在你编译程序的时候发生了什么?
1.14不能运行?
1.14.1一些常见的错误信息
1.14.2使用原始的源文件校对你的程序
1.15关于FlashBuilder的更多内容
1.15.1编辑窗口的怪癖和特性
1.15.2透视图...
1.16关于AS3.0和FlashPlayer的更多内容
1.17命名约定
1.18本章小结
第2章制作游戏图形
2.1创建游戏世界背景
2.1.1在Photoshop中新建文件
2.1.2绘制天空.
2.1.3绘制山峦.
2.1.4使用钢笔工具绘图
2.1.5复制、修改以及排列图层
2.1.6斜面和浮雕
2.1.7使用矩形选择工具制作箱子
2.2制作游戏角色
2.2.1创建文件.
2.2.2绘制角色.
2.3制作按钮
2.3.1新建一个文件
2.3.2绘制按钮
2.3.3使用文字工具
2.3.4制作其他按钮
2.3.5保存作品并制作PNG文件
2.4检查你的作品
2.5关于Photoshop的更多内容
2.6本章小结
第3章为对象编程
3.1可我有点害怕编程!
3.2加载并显示图片
3.2.1新建AS3.0项目
3.2.2理解配置文件
3.2.3用元数据标签设置FlashPlayer
3.2.4加载并显示background.png
3.2.5这段代码的工作原理是什么?
3.2.6变量
3.2.7变量类型
3.2.8创建空盒子
3.2.9创建实例和对象
3.2.10在舞台中显示图像
3.2.11理解代码结构
3.2.12在舞台上定位Sprite
3.3为按钮编程
3.3.1理解点标记
3.3.2方法
3.3.3使用方法调用
3.3.4使用函数定义
3.3.5使用基本方法
3.3.6理解事件和事件监听器
3.3.7让按钮运行起来
3.4利用属性控制Sprite对象
3.4.1上下移动
3.5渐进移动
3.5.1跟踪输出
3.5.2使用递增和递减运算符
3.5.3限制移动
3.5.4变大和变小
3.5.5消失!...
3.5.6旋转
3.5.7更多的属性?
3.6Sprite居中
3.7代码小结
3.8本章小结
第4章决策
4.1使用文本
4.1.1新建项目
4.1.2需要导入的类
4.1.3创建TextFormat和TextField对象
4.1.4设置文本格式
4.1.5配置并显示输出文本
4.1.6配置并显示输入文本框
4.2编写简单的猜数字游戏
4.2.1理解游戏的结构
4.3学习关于变量的更多内容
4.3.1监听按键
4.4决策
4.4.1显示游戏状态
4.5使用后缀操作符改变同一个变量的值
4.5.1字符串连接
4.5.2嗨,为什么必须要用gameStatus变量呢?
4.5.3uint型变量与int型变量
4.5.4游戏的输赢
4.5.5利用方法将程序模块化
4.6润色
4.6.1处理随机数
4.6.2禁用回车键
4.7制作漂亮的按钮
4.7.1理解一些概念
4.7.2加载图片并显示按钮
4.7.3理解鼠标事件
4.8将按钮添加到猜数字游戏中
4.8.1在游戏结束时禁用按钮
4.8.2管理复杂的代码
4.9项目扩展
4.9.1制作Playagain按钮
4.9.2跟踪玩家的猜测
4.9.3添加视觉效果
4.9.4逆向思维
4.10嵌入字体快速指南
4.11本章小结
第5章控制游戏角色
5.1使用键盘控制玩家的游戏角色
5.1.1键盘操控——错误的方式!
5.1.2键盘操控——正确的方式!
5.1.3按照指定的速度移动
5.1.4使用新的keyDownHandler
5.1.5使用keyUpHandler
5.1.6使用enterFrameHandler
5.1.7设置舞台边界
5.1.8到达舞台边缘时禁止移动
5.1.9屏幕环绕
5.2嵌入图片
5.3滚动
5.3.1源码分析
5.3.2更好地滚动
5.3.3再好一点的滚动
5.4更进一步
5.4.1视差滚动
5.5本章小结
第6章碰撞检测
使用hitTestObject进行基本的碰撞检测
使用hitTestObject
6.1触发状态变化
6.1.1降低血量条
6.1.2利用scaleX按照百分比缩放血量条
6.1.3刷新得分
6.1.4检测游戏是否结束
6.1.5拿起和放下对象
6.2关于hitTestObject的坏消息
6.2.1使用边界框检测碰撞
6.2.2学会和hitTestObject共处
6.2.3创建子对象
6.2.4高级碰撞检测策略
6.3使用基于矢量的碰撞检测
6.3.1防止对象重叠
6.3.2编写Collision类
6.3.3换个角度再看方法、实参和形参
6.3.4Collision.block方法解析
6.4本章小结
第7章制作游戏
7.1制作游戏图形
7.1.1制作带纹理的箱子
7.1.2制作地雷
7.1.3制作游戏角色
7.1.4设计游戏背景
7.1.5制作GameOver图形
7.2游戏编程
7.2.1处理大量对象
7.2.2到底什么是类?
7.2.3TimeBombPanic应用类解析
7.2.4向游戏中添加对象
7.2.5舞台边界
7.2.6角色和箱子之间的碰撞
7.2.7排雷
7.2.8使用定时器
7.2.9结束游戏
7.3创建可滚动的游戏环境
7.3.1让你的作品准备滚动
7.3.2向游戏中添加对象
7.3.3滚动游戏的边界
7.4本章小结
第8章制作更大型的游戏
8.1理解游戏的结构
8.1.1使用私有变量和方法
8.2游戏编程
8.2.1让LevelOne访问stage
8.2.2确保LevelOne位于舞台上
8.2.3LevelOne类
8.2.4对游戏角色编程
8.2.5对怪物编程
8.2.6对星形武器编程
8.2.7检测关卡是否结束
8.2.8结束关卡
8.2.9使用removeChild彻底删除对象
8.2.10通过派发事件在类之间进行通信
8.2.11事件冒泡
8.2.12结束第一关
8.3在第二关中向四个方向发射星星
8.4更多的怪物
8.4.1在一个滚动式的游戏世界中移动对象
8.4.2智能怪物
8.4.3障碍物和寻路
8.5关于游戏结构的更多内容
8.6本章小结
第9章物理引擎、循环、数组和音效
9.1使用物理模拟自然运动
9.1.1用来玩物理的游戏对象类
9.1.2加速度
9.1.3摩擦
9.1.4弹跳
9.1.5重力
9.1.6跳跃
9.2为游戏添加音效
9.2.1在游戏中集成音效
9.2.2循环播放音乐以及设置音量和声道
9.3同时操纵大量对象
9.3.1使用数组
9.3.2创建很多箱子
9.3.3在多个对象之间进行碰撞检测
9.3.4案例学习
9.4本章小结
第10章对象和角色的高级控制
10.1使用鼠标移动对象
10.1.1让对象跟随鼠标移动
10.1.2使用缓动的方式移动对象
10.2案例研究:全角度发射子弹
10.2.1创建游戏对象
10.2.2让魔杖围绕仙女旋转
10.2.3360°发射星星
10.3高级玩家操控系统
10.4敌军AI系统
10.4.1避开玩家
10.4.2旋转并向鼠标发射子弹
10.4.3使用定时器发射子弹
10.5案例研究:杀人蜂魔窟!
10.5.1Flash动画以及游戏发布
10.6本章小结
|
內容試閱:
|
5.1.2 键盘操控——正确的方式!
现在已经知道AS3.0是如何判断按键的了,你可以利用同样的基本机制来重构键盘控制程序。
这里有很多新知识,但是不必惊慌!下面会逐步展示它到底是如何工作的。但是现在先来快速概览一下需要做的事情。
? 需要导入AS3.0的Event类,以便可以使用它的ENTER_FRAME属性。
? 需要创建两个新变量:vx和vy。这两个变量将会存储对象的垂直速度和水平速度。
?
需要修改keyDownHandler,让它不再改变角色的位置。作为替代,这个方法将会根据对象需要移动的速度和方向来修改vx和vy变量。
?
需要添加一个新的名为keyUpHandler的事件处理器。它的任务是检测箭头键何时被释放。当箭头按键被释放时,它将会把角色的速度设置为0。
? 需要创建一个新的事件处理器,叫做enterFrameHandler,它会使用vx和vy变量来真正移动角色。
我们来写一个新程序,示范一下这些特性。
1.新建一个ActionScript项目,命名为KeyboardControl。
2.在项目目录下创建一个images目录,然后把character.png文件复制到其中。
3.在代码编辑器中编写以下程序。
package
{
import flash.net.URLRequest;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.events.Event;
[SWFwidth="550", height="400",backgroundColor="#FFFFFF",
frameRate="60"]
public class KeyboardControl extends Sprite
{
创建游戏角色对象
public var characterURL:URLRequest
= new URLRequest"..imagescharacter.png";
public var characterImage:Loader = new Loader;
public var character:Sprite = new Sprite;
创建并初始化vx和vy变量
public var vx:int = 0;
public var vy:int = 0;
public function KeyboardControl
{
加载图片并把角色添加到舞台上
characterImage.loadcharacterURL;
character.addChildcharacterImage;
stage.addChildcharacter;
character.x = 225;
character.y = 150;
添加事件监听器
stage.addEventListener
KeyboardEvent.KEY_DOWN, keyDownHandler;
stage.addEventListener
KeyboardEvent.KEY_UP, keyUpHandler;
stage.addEventListener
Event.ENTER_FRAME, enterFrameHandler;
}
public function keyDownHandlerevent:KeyboardEvent:void
{
if event.keyCode == Keyboard.LEFT
{
vx = -5;
}
else if event.keyCode == Keyboard.RIGHT
{
vx = 5;
}
else if event.keyCode == Keyboard.UP
{
vy = -5;
}
else if event.keyCode == Keyboard.DOWN
{
vy = 5;
}
}
public function keyUpHandlerevent:KeyboardEvent:void
{
if event.keyCode == Keyboard.LEFT
|| event.keyCode == Keyboard.RIGHT
{
vx = 0;
}
else if event.keyCode == Keyboard.DOWN
|| event.keyCode == Keyboard.UP
{
vy = 0;
}
}
public function enterFrameHandlerevent:Event:void
{
移动角色
character.x += vx;
character.y += vy;
}
}
}
4.编译程序。使用箭头键在舞台上移动对象。现在移动的过程会非常平滑,并且还可以在舞台上按斜线方向移动角色——这正是你苦苦寻找的角色控制方式!
你可以在本章的源码文件中找到完整的KeyboardControl程序。我们来看看这段新程序和你自己写的那段老程序有什么不同。
|
|