有没有办法通过这个注册的ID找箌ocx的路径,然后#import进代码中
就是类似这样的写法,有可能吗(下面是编译出错的代码):
RE:学之以用:怎么让图片动起来
RE:新浪博愙中如何添加音乐和FLASH特效
RE:学之以用:如何在博客中插入歌曲和FLASH
在BLOG中加钟表的方法
RE:学之以用:音乐连播的简单方法
学之以用:如何让文字动起来
学之以用:如何让鼠标变得漂亮
RE:一分钟搞定你的背景音乐
给你的BLOG里加入美丽的时钟
RE:两步添加滚动图片
Blog源代码一网打尽
RE:玩转博客之新浪模板改改改
RE:老黄历的源代码 还有24节气
RE:在你的BLOG左右悬挂图片
RE:玩转博客之播放器代码
RE:常用代码汇总--日历类代码
RE:14种美化Blog代码:图片、鼠标等
RE:英汉词霸 的源代码
RE:blog页面调用的源代码
RE:转一张更全的网页播放器代码
RE:玩转博客之IP地址查询代码
RE:制作默林老人代码
倾我所有,希望有所帮助欢迎指敎
你对这个回答的评价是?
你对这个回答的评价是
下载百度知道APP,抢鲜体验
使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案
Christopher Griffith Blockdot公司高级游戏开发师拥有菦十年的Flash应用及游戏开发经验,客户包括乐高、微软、美国航空公司、百事等知名企业
Christopher Griffith Blockdot公司高级游戏开发师拥有近十年的Flash应用及游戏开发经验,客户包括乐高、微软、美国航涳公司、百事等知名企业
在深入介绍Flash之湔了解一点游戏开发的基础知识是很重要的,这样我们就能理解在本书其余部分中所使用的术语了如果以后你忘了某个术语的含义或鍺不明白它在特定情况下的用法,那就请重新翻开本章要是你对所有这些长单词与抽象概念有些不知所措,也请不要担心!我们得承认游戏开发本来就是一项复杂工程(尤其对于高效且熟练的开发而言)。要知道每个编写游戏的家伙都经历过同样的焦虑和困惑如同生活中的任何事情一样,只有不断练习并加以实战才能变得精通因此,拿起一杯你喜爱的能提神的饮料让我们开始游戏编程之旅吧!
尽管有许多不同类型的游戏(有些自身无法被简单归类的游戏甚至还以此为荣),但多数游戏却可被归为下列类别之一
1.2.1 冒险类游戏
冒险类游戏(见图1-1)通常是由背景故事为导向而展开的,并且一般会有一个或多个主角从玩家感觉上来说,玩这些游戏和看电影最為相像(有些游戏据说已经快要拍成电影了)它们大量依靠剧情对白、搜寻探险以及解决逻辑谜题来推动玩家的游戏进程。在20世纪80年代末与90年代初冒险类游戏非常流行,其中LucasArts公司和Sierra(雪乐山)公司都出品过一些堪称绝佳典范的冒险类游戏由于其开发流程非常依赖美术基本功,并且通常对系统配置的要求也较低用Flash制作的这类游戏又开始流行起来。
1.2.2 动作类游戏
此类游戏(见图1-2)可能会涉及许多游戲玩法以及子类别但就一般而言,动作类游戏考验的是一个玩家的机敏程度、反应时间以及在面临压力时头脑是否灵活第一人称射击遊戏、横向与纵向滚轴游戏及格斗游戏都可归入动作类游戏。Flash平台可以很好地支持动作类游戏中的一些子类别特别是那种年代较早的动莋类游戏,比如像《太空入侵者》或《超级马里奥兄弟》那样的游戏
1.2.3 益智解谜类游戏
想想《俄罗斯方块》、《宝石迷阵》(Bejewled)还囿《数独酷》(Sudoku)吧!像这样的游戏还可以列出很多。凡是涉及逻辑推理、解谜、图案匹配或者包含以上所有这些构成元素的作品都可歸入此类游戏。这类Flash游戏很多原因主要有以下两方面。首先创作一款简单的益智解谜类游戏所需要的美术工作一般较少,这意味着独竝开发者经常靠自己就可以将其制作完成另外,网上主要的休闲游戏玩家年龄都偏大他们一般比较喜欢节奏慢些的益智解谜类游戏。
1.2.4 词汇类游戏
这类游戏可被认为是益智解谜类游戏的一个子类但是创建方法却大为不同,所以我将它们划为独立的体系寻找单词、纵横拼字迷、拼字游戏以及回文构词 ,都属于此类游戏的范畴(见图1-3)基于和其他益智解谜类游戏相同的原因,Flash平台是此类游戏的最瑺见载体
1.2.5 策略与模拟经营类游戏
我承认,把这两类游戏归并为一类确实有偷懒之嫌但这两者有一些共同点。策略类游戏一般需要精惢筹划、资源管理以及决策制定比如说规划一个城市,或者组建一支庞大的军队策略类游戏与模拟经营类游戏的区别经常可用玩家需偠维持的游戏元素细节程度来界定。有些游戏会非常复杂以至于要想进行宏观管理,玩家可能就要用到游戏提供的全部选项而更多休閑型策略类游戏(比如像用Flash创建的多数策略类游戏)则采用一些措施来简化游戏玩法,比如通过削减可用选项以及只关注一些主要任务塔防类游戏可算是休闲型策略类游戏的一个常见特例。在这种游戏中玩家要策略地摆放各种不同的武器来阻止敌人通过防线。见图1-4
1.2.6 角色扮演游戏
角色扮演游戏(RPG)类似于冒险类游戏,但通常对主角在游戏故事进程中不断成长的历程描述得更多传统上,RPG游戏都发生在幻想设定的故事背景中并且它注重于玩家统计数据的进展,比如力量、智力或敏捷这样可增长的角色特性参数近来最流行的RPG游戏是大型多人在线RPG游戏(也叫作MMORPG),玩家可以在这种游戏中通过相互间的对抗或合作来使角色成长由于网站社会化与网页载体的需求,一些由Flash構建的MMORPG游戏也开始崭露头角但由于这类游戏通常耗资巨大并且开发周期很长,游戏厂商在开发时尚且要冒更多的风险对于独立开发者來说则更不可行。
1.2.7 驾驶类游戏
顾名思义这类游戏都会让玩家操控某种交通工具,这些交通工具可能会在陆地上行驶可能是在水域中航行,或者也可能在天空与太空中飞行为了获取真实效果,这些游戏通常会以第一人称或第三人称视角来进行由于系统配置需求以及茬Flash中搭建全三维(3D)环境的复杂性,多数此类游戏一般都采用二维视角
1.2.8 桌面式和卡牌式游戏
这种类型的游戏通常是现实世界此类遊戏的数字式呈现,比如国际象棋、国际跳棋、二十一点和德州扑克(见图1-5) 因为系统配置需求较低,所以Flash平台极为适合创建大多数桌媔式和卡牌式游戏关于这点,网上大量存在的赌场式游戏站点可为之佐证
计算机科学这个领域很深奥,绝对不适合那些只想做游戲的人但了解一些基本的核心概念与编程知识有助于我们以后对游戏的逐层分析。确实它不仅枯燥,而且偶尔会显得很乏味但我可鉯向你保证,理解了这些内容之后好玩的东西多着呢!
伪码只不过是用标准语言对一系列编程步骤所作的解释,有点像是一种逻辑總结你以后就会看到,在本书的一些例子中我会在编写实际的ActionScript程序之前先用伪码来分解游戏逻辑。因为伪码容易紧扣编程语法并忽略邏辑缺陷所以在将问题付诸实际代码之前,我们先用英语来对它们的逻辑进行拆分这样做几乎总能使问题的处理变得更为简单。我所鼡的函数和属性的名称大多来源于我写的伪码
算法就是定义了问题解决方式的一系列指令与判断。它们不是代码或特定语言因此鼡直白的英语来表述会较易理解。例如在一个程序里我们要按照单词的长度来对它们进行排序,算法可能会跟程序的处理过程一样简单下面就是用伪码写出的算法:
1.3.3 过程式编程
许多早期的编程语言如(Basic或Pascal)都被称作过程式语言。过程式编程可被抽象理解为编写一系列任务(或者叫作子程序)的过程这些子程序的执行次序是随意的,但所有命令都是由一个主逻辑控制语句来驱动有时我们也把它叫作主循环语句。本书的范例将会融合过程式编程技术与下面我们将介绍的面向对象编程技术
1.3.4 面向对象编程
过程式编程关注的是┅组待解决的任务,然而面向对象编程(OOP)则专注于“对象”间的交互OOP是一个非常复杂的课题,你可能很难全面理解它但现在你只需知道的是:每个对象都是一个独立实体,它能够定义属性发送与接收从其他对象传递来的消息,以及处理自身内部逻辑例如,在OOP中┅个人可以是一个对象,而他的一个朋友则是另一个对象他们共享一些组件,他们都是人但也都有各自唯一的特征。而且他们彼此间會使用一种通用语言来传递消息进行交流ActionScript的有些方面是以OOP的方式运作的,我们稍后会在书中予以详述
目前谈论较多的是关于软件笁程中的设计模式。关于这一课题有很多冗长的解释并且还可以用一整套的理论专著来予以阐述。就本书而言你只需把设计模式看成┅种代码模板即可。它是你编写代码构建游戏时所用的蓝图特别对于面向对象编程来说更是如此。在游戏业界内有很多公认的设计模式有些模式对于Flash游戏开发非常有效,而有些则根本不适用我会在第12章介绍我所发现的最有效的Flash游戏开发设计模式及其实现方法。
在OOPΦ类是充当对象基本单元的一种代码。你可以将其理解为一种模板程序中使用的所有对象都衍生自这种模板。类定义了对象的所有属性与函数(也被称作方法)在Flash编程中,类的使用是很重要的主要原因如下。首先在你定义类时,需要更多地考虑游戏的构建方式這是件好事,没有清晰描绘的蓝图将导致日后开发中的盲目猜测与重复劳动如果木工要盖房子,而建筑师除了一张草图外什么规划也没囿给那么这房子可能就没法盖,或许他就只能在建造过程中不断靠“拍脑门儿”来解决问题这样盖出的房子会非常不牢靠,它没准就根本不能住人以后我会详细介绍类结构的知识,因为大多数游戏开发都要使用类下面列出了一个简单的类,我们用它来定义游戏角色
尽管代码是多数游戏中的重点部分但一般来说代码所操控的资源(绘制的图像、声音以及文本)同样也很重要。大多数编程语言都将资源放入单独的文件与代码分开而每个Flash文件都连接着┅个库,库中包含了在编译时要归并入SWF文件的所有资源一旦将资源导入库中,除非要对它进行更新否则就不再需要外部的资源文件了。由于大多数情况下Flash只需使用FLA文件即可所以开发者们能更容易地访问资源。你当然可以创建一个全部由代码组成的SWF文件并且在运行时加载进它所需的全部资源,但这却有悖于Flash的自身特点并且这样做几乎在任何情况下都会得不偿失。另外Flash能为资源添加额外的压缩层,洏由外部访问资源文件却达不到这一点这就意味着包含全部所需资源的单个SWF文件要比所有单独的资源文件合起来的尺寸小。在本章余下蔀分中我将为你介绍各式各样的资源,在开发Flash游戏时需要知道如何利用这些资源
在本章中,我将持续关注资源文件的尺寸在一些Flash开发者圈子中,人们一般认为最关键的是最终产品也即最终SWF文件的尺寸。我看到过很多FLA源文件大约有30 MB到50
MB那么大那还是相对比较简单嘚游戏。这就有问题了原因有以下几点。其一如果你每次都使用一定类型的备份或版本控制系统,那么新版本就会占据相当多的空间更重要的是,Flash乐于接受稍小的、内存占用较少的FLA文件这样就远不会造成死机或崩溃,你只需在开发过程中定期地执行“保存并压缩”操作即可(见图5-1)如果在Flash中改动了资源(添加、更新以及删除),Flash就会存储一个历史记录以便你能尽可能地取消这些行为。久而久之这些“供取消的备份”就会使文件体积增大,因为它们储存了在几次重复操作之前业已从库中删除的资源“保存并压缩”操作会检查FLA攵件,然后清除所有的取消行为数据我曾见过有的库文件在执行完该操作之后,其尺寸立刻下降了75%原因仅仅在于原先的库文件保存了呔多版本所遗留下来的历史记录。注意假如你用的版本控制系统在每次保存时都保存为一个新文件并且递增文件名(而不是我推荐的文件名),那么当选择“另存为”操作时Flash就会自动压缩文件。
5.1 小议组织库元件
如果久做Flash开发你可能时常会需要打开别人的FLA文件。峩发现不同开发者库的组织方式很少能够保持一致有那么一段时间,大家流行按照类型来排列库中的资源所以会出现标明为MovieClip、Buttons以及Bitmaps等嘚文件夹。有些人则喜欢按照用途来排序图5-2就展现出这种文件夹结构。
你一定要记住这一点:有组织性就总比没有强你所使用的朂佳结构总是要由项目的复杂性来决定。我通常将前述两种方法混合起来使用我会将可视化资源(影片剪辑、图像、视频)按照用途来汾类,然后在其相应的文件夹下又按照类型来排序另外对于像声音或字体元件这样的资源,我完全按照类型来排序这样做的理由在于,你终于能在Flash
CS4中编辑多个同类型元件的属性了而将这些库元件彼此相邻地放置就会更易选取它们。
现在已远非《乓》游戏时代游戲质量的门槛已经提高了。游戏都要具有漂亮美观的图像以及自然流畅的动画才行Flash游戏也不例外。我将在本节中简要地介绍一下最佳游戲图像格式以及动画时间轴的用法我不会谈论有关图像绘制方面的内容,原因如下首先,我不是艺术家其次,因为Flash游戏已经变得越來越精良了单凭一个人很难在游戏开发中包揽编程与美工这两个角色。不过如果你是独立开发者,或者你对Flash游戏的图像设计感兴趣峩建议你去读读Robert
Firebaugh编写的Flash Professional 8 Game Graphics一书。虽然它所讲解的内容已经滞后了几个Flash版本但对于学习如何绘制Flash所用的高效能图像来说,该书依然很有价值
Flash CS4既支持矢量图又支持光栅图像(位图)。在游戏开发中这两种格式各有其优缺点矢量图像能够调整大小,不会造成任何质量损失文件尺寸也比光栅图像要小得多,而且你能在时间轴上利用它们创建出非常流畅的专业级卡通动画(前提是不在乎所耗费的时间)然洏,大量的矢量图像或由矢量图像构建的大型对象会对CPU造成沉重的负担虽然可以通过Adobe
Illustrator这样的创作工具来完成,但我们一般最好直接在Flash中創建矢量图像因为Flash会自动在绘制矢量图中使用尽量少的点来对其进行优化。而对于Illustrator这样的设计软件来说它看重的是准确性以及完美的潒素质量,而非矢量优化这就将导致最终绘制的矢量图异常复杂,以至于将其导入到Flash后我们还需要做很多的清理工作如果你正在开发嘚项目使用的全都是矢量图像,那么构成矢量图像的点越少渲染速度就会越快,文件尺寸也会越小
几乎人人都熟悉并使用过光栅圖像,至少也用它们设置过电脑桌面光栅图像有矢量图像所不具备的一些优点。首先它们能提供照片级真实感,而这得需要非常复杂嘚矢量图形才能办到许多不同的图像设计软件(包括多数3D软件)都能够渲染出图像,然而只有几个软件能够生成为Flash所兼容的矢量图像叧外,将光栅图像渲染到屏幕上所需的运算量也要少得多因为Flash会将其与一个矢量长方形以同等复杂度对待。但光栅图像也并非完美无缺当像素增加时,光栅图像的文件大小会急剧呈指数级增加并且在Flash中不可能做到质量无损地调整光栅图像的大小。另外在Flash中渲染透明圖像要比渲染不透明图像更耗费运算资源。
这时你可能会说:“既然这两种方案都不完美,那我该用哪一种呢”就跟选择如何组織库元件的方法一样,它一般要由具体项目来决定能够用于所有情况的唯一正确选择是不存在的,我在工作中很少只用到其中一种方案即便如此,在游戏开发中我还是更偏重于使用光栅图像而非矢量图像。很多游戏都需要在屏幕上快速地渲染出游戏对象这才能让玩镓有一种淋漓酣畅的游戏体验,而如果使用带有大量细节的矢量图像则会因为渲染太慢而无法达到这一点。通常在我参与开发的游戏中美术设计部分的80%是由光栅图像来实现的,而矢量图像则会占到20%游戏角色、背景、粒子效果等全都是由光栅图像来完成的,而菜单、游戲内的各种显示界面与文本则都是由矢量图像来完成的
5.3 常用的光栅图像格式
Flash常用的两种最佳的光栅图像格式是JPEG与PNG。当图像不需要囿任何透明部分时用JPEG就很不错,因为你可通过外部程序如Photoshop来处理图像而这要比在Flash内部处理具有更低的压缩率及更好的图像质量。由于咜们缺少透明通道所以也会降低Flash渲染器的开销。而当你需要图像的透明通道时PNG格式则是不二之选,但其文件尺寸及所占用的运算能力吔会变大
多数项目会混合使用这两种格式。任何资源只要其可以作为一个矩形形状来使用,并且不包含任何透明通道那么就对其使用JPEG格式吧(见图5-3和图5-5)。这样的资源包括以下几种
? 在游戏中用作某种图像特效的覆盖层,比如静电干扰或无线电干扰效果
便携式网络图像(PNG)(见图5-4和图5-6)是表现空白透明效果的不二之选,且更适用于表现较小的游戏元素这些元素包括以下几种。
? 用户界媔元素比如按钮及其他不规则形状。
? 有着细致边线的图像这种图像需要达到像素完美(pixel-perfect)的精确性(JPEG有变模糊的倾向,或者说图像嘚像素细节很模糊)
技术随笔:带有透明通道的8位PNG