辣鸡

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2013年7月17日

摘要: 如果把Math.random方法作为一个生成随机数字的办法,那么bitmapData.perlinNoise就是一个生成随机颜色的办法。在这一部分的对于噪声的应用介绍文章中我们一起来看看使用柏林噪声的随机化像素功能能为我们完成什么样的随机化效果。本文章源码下载:www.iamsevent.com/zb_users/upload/AS3Coder4/AS3Coder4_2.rar渗透型溶解效果想必列位在看PPT或者一些视频的时候经常会看到溶解效果,那么在AS3中,BitmapData也提供了一个可以实现溶解效果的方法:threshold。先来一起看看这个方法如何使用。public functio 阅读全文
posted @ 2013-07-17 11:47 辣鸡 阅读(407) 评论(0) 推荐(0) 编辑

摘要: 在上一节中,我们基本上已经讲完了游戏中最主要的逻辑部分,不过为了更加全面地运用Starling中的一些特性,在本节中我们将一起来看看如何实现多面板切换以及粒子效果,这两个玩意儿可是比较频繁会出现于Starling游戏中的哦~本章源码下载:www.iamsevent.com/zb_users/UPLOAD/AS3Coder5/AS3Coder5_src3.rar游戏暂停面板玩游戏的过程中难免要暂停一下游戏,不然老子玩个游戏却被尿憋憋死,你说老子的老娘是不是白养我那么多年了?!而创建这样一个面板非常容易,因为我们把一些基础的设置都封装在了其父类PanelBase中了:/** * 看名字就晓得是干嘛 阅读全文
posted @ 2013-07-17 11:46 辣鸡 阅读(375) 评论(0) 推荐(0) 编辑

摘要: 在上一节中,我们介绍了如何构建我们小小的90度角RPG游戏的背景,在这一节中我将为列位带来重头戏部分,隆重介绍我们的主角及NPC登场,噔噔噔噔……掌声在哪里?! 额,没听到掌声,罢了,直接开场吧。本章源码下载:www.iamsevent.com/zb_users/UPLOAD/AS3Coder5/AS3Coder5_src2.rar构造人物 如果你仔细阅读过《Starling介绍》,那么在书中介绍MovieClip类的章节中作者提到过,Starling中的MovieClip不是容器,无法向其中添加子对象,那么要实现多状态的动画就必须使用setFrameTexture、addFra... 阅读全文
posted @ 2013-07-17 11:45 辣鸡 阅读(373) 评论(0) 推荐(0) 编辑

摘要: 在上一节中,我们基本上已经讲完了游戏中最主要的逻辑部分,不过为了更加全面地运用Starling中的一些特性,在本节中我们将一起来看看如何实现多面板切换以及粒子效果,这两个玩意儿可是比较频繁会出现于Starling游戏中的哦~本章源码下载:www.iamsevent.com/zb_users/UPLOAD/AS3Coder5/AS3Coder5_src3.rar游戏暂停面板玩游戏的过程中难免要暂停一下游戏,不然老子玩个游戏却被尿憋憋死,你说老子的老娘是不是白养我那么多年了?!而创建这样一个面板非常容易,因为我们把一些基础的设置都封装在了其父类PanelBase中了:/** * 看名字就晓得是干嘛 阅读全文
posted @ 2013-07-17 11:44 辣鸡 阅读(321) 评论(0) 推荐(0) 编辑

摘要: 近期在面试时候遇到这么一道题目:比较两个存在大量元素的数组,抽离出他们的相同项。当时我脑中想到的办法是把一个数组中的元素逐个地去另一个数组中查找,但是此办法效率不高,下面给出测试代码,arry1和arry2各有一万个元素:private function loopCompare():void{ var startTime:int = getTimer(); var commonValue:Array = []; var currentValue:int; var index:int; for(var i:int=0; i<elementCount; i++) { currentValue 阅读全文
posted @ 2013-07-17 11:11 辣鸡 阅读(481) 评论(0) 推荐(0) 编辑

2013年7月3日

摘要: 1. 什么是BSP树BSP算法的初始数据是一个多边形集,BSP在预处理的时候先在多边形集中选取一个多边形作为支持平面,然后根据这个平面将集合划分成两个部分,每个部分是一个新的子节点,递归进行该过程,直到每个子节点中的多边形都构成一个凸区域(最小凸边型),每个区域是一个叶节点,或成为cell,然后算法预计算在每个区域中可以见到哪些区域,得到PVS(潜在可见集)。BSP可以说是八叉树的一般化每个节点都是一条直线.所有在直线左边的东东都在它的左子树上,所有在它右边的东东都在它的右子树上.好,我们用BSP树来想象一幅画面.假设玩家站在D房间里面向屏幕右方,代号为点'x'我们从树的顶端直 阅读全文
posted @ 2013-07-03 20:32 辣鸡 阅读(920) 评论(0) 推荐(0) 编辑

摘要: flash 程序执行是个异步单线程机制,当我们需要让程序等待一会,比如加载资源时要侦听complete,否则容易出现null的情况,由于没有c#中的wait,当遇到需要异步的时候,除了使用事件以外,回调函数也是个不错的选择。看一段代码:private function initData ():void { var initNeedData:InitNeedData = new InitNeedData(); GetNeedImage.getInstance().getNeedImage("//192.... 阅读全文
posted @ 2013-07-03 20:32 辣鸡 阅读(269) 评论(0) 推荐(0) 编辑

摘要: 要说应用程序域,就不得不说安全沙箱安全沙箱在帮助文档的解释是:客户端计算机可以从很多来源(如外部 Web 站点或本地文件系统)中获取单个 SWF 文件。当 SWF 文件及其它资源(例如共享对象、位图、声音、视频和数据文件)加载到 Flash Player 中时,Flash Player 会根据这些文件和资源的来源单独地将其分配到安全沙箱中。从导入到安全域的 SWF 文件加载嵌入内容当加载 SWF 文件时,可以设置用于加载文件的 Loader 对象的 load() 方法中的 context 参数。此参数是一个 LoaderContext 对象。将此 LoaderContext 对象的 secur 阅读全文
posted @ 2013-07-03 20:31 辣鸡 阅读(289) 评论(0) 推荐(0) 编辑

摘要: 卡马克卷轴是世界顶级程序优化大师,以及游戏引擎开发领域的先行者 约翰·卡马克所创造的一种平滑卷轴算法。(此人和zun并列为我的偶像) 早在20多年前,电脑游戏的发展才刚刚起步。相比专门为游戏而生的电视游戏,电脑游戏在当时还非常“弱智”。 tv游戏里那些可以卷轴的游戏大大提高了用户的体验,当控制角色行走时,镜头会跟随主角,而地图会卷动以提供更为广阔的游戏场景,让玩家体验到一个连续的世界。超级马里奥就是这类游戏中的成功典范。 但在1990年,还没有人能在电脑上实现这样的效果,开发人员都用一些蹩脚的技巧来让玩家觉得游戏的世界比屏幕要大,譬如当玩家移动到屏幕最右边的时候,游戏会停顿一会,然后 阅读全文
posted @ 2013-07-03 20:31 辣鸡 阅读(1029) 评论(0) 推荐(0) 编辑

摘要: 不够优秀的代码:/**** ActionScript 3.0 需要多个类同时工作来载入和回放Flash视频。你必须使用NetStream对象载入视* 频并控制回放,但是NetStream类只关心如何读取数据,至于这些数据是什么内容并不知道,因* 此就需要Video对象,Video对象得到NetStream的数据并显示到屏幕上。*** NetStream构造函数需要一个NetConnection对象作为参数,NetConnection对象关联将要播放的视频***/package tlg.tool { import flash.display.Sprite; import f... 阅读全文
posted @ 2013-07-03 20:30 辣鸡 阅读(213) 评论(0) 推荐(0) 编辑

摘要: package{ import flash.display.Loader; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; import flash.net.URLRequestMethod; import flash.net.URLVariables; import flashx.textLayout.tlf_internal; im... 阅读全文
posted @ 2013-07-03 20:29 辣鸡 阅读(331) 评论(0) 推荐(0) 编辑

摘要: 比较常用的,AS 调用 JSprivate function callJS():void{ ExternalInterface.addCallback("callbackQQPay",callBackFromJs); var obj:Object = {}; obj.id = 1; ExternalInterface.call("testItem", obj);}private function callBackFromJs(obj:Object=null):void{ trace("OK!"); }复制代码在 JS 调用 AS 时 阅读全文
posted @ 2013-07-03 20:28 辣鸡 阅读(293) 评论(0) 推荐(0) 编辑

摘要: Context3D,是一个三维空间的处理环境,负责创建并处理三维对象的各个要素如顶点、片段、透视等等,并将处理的结果使用AGAL(Adobe图形汇编语言)上传给显卡进行运算,运算结果最终被回传给CPU添加到Flash Player的显示层,并呈现在舞台上。Context3D不能被构造函数实例化,而是可以通过stage中的一个新的成员Stage3D来访问(但这不说明只许可有唯一个Context3D)stage3D.requestContext3D();复制代码使用 GPU 加速渲染资源,在渲染的过程中,首先需要把数据提前加载到显存。在 Alternativa 3D,这些数据资源就代表那些资源类对 阅读全文
posted @ 2013-07-03 20:28 辣鸡 阅读(357) 评论(0) 推荐(0) 编辑

摘要: ECMAScript 整数有两种类型,即有符号整数(允许用正数和负数)和无符号整数(只允许用正数)。在 ECMAScript 中,所有整数字面量默认都是有符号整数,这意味着什么呢?有符号整数使用 31 位表示整数的数值,用第 32 位表示整数的符号,0 表示正数,1 表示负数。数值范围从 -2147483648 到 2147483647。可以以两种不同的方式存储二进制形式的有符号整数,一种用于存储正数,一种用于存储负数。正数是以真二进制形式存储的,前 31 位中的每一位都表示 2 的幂,从第 1 位(位 0)开始,表示 20,第 2 位(位 1)表示 21。没用到的位用 0 填充,即忽略不计。 阅读全文
posted @ 2013-07-03 20:27 辣鸡 阅读(627) 评论(0) 推荐(0) 编辑

摘要: 初始化XML对象XML对象可以代表一个XML元素、属性、注释、处理指令或文本元素。在ActionScript 3.0中我们可以直接将XML数据赋值给变量:var myXML:XML =burger3.95fries1.45复制代码你也可以使用new 构造器来从XML数据文本创建一个XML对象实例:var myXML:XML = new XML("burger3.95")复制代码如果XML数据不是格式完好的(如少了结束标签),那么将会出现运行时错误。注意,你也可以将变量实例传入XML数据中:var tagname:String = "item";var a 阅读全文
posted @ 2013-07-03 20:26 辣鸡 阅读(208) 评论(0) 推荐(0) 编辑

摘要: 一年来可以明显看到一个变化:网页游戏分线从标配逐渐变成了可选,越来越多的游戏开始不分线;当初为什么要分线?现在为什么又不分线?技术上面临着什么挑战?仅仅是技术问题么?术语解释不同的技术实现"一条线"的概念也不尽相同,我们使用的Erlang实现,这里的一条线对应Erlang的一个VM.为什么要分线? 可以通过比较来回答这个问题:所有玩家都在同一条线上 VS 同样数量的玩家被分配在多条线;如果所有玩家(假定1000人)都在一条线上首先同一场景的玩家数就会比较高,特别是一些游戏的热点区域比如副本入口,主城中心,传送门等等,当然同屏人数也会高;服务器端对应相关场景的广播压力,和业务 阅读全文
posted @ 2013-07-03 20:24 辣鸡 阅读(272) 评论(0) 推荐(0) 编辑

摘要: 一个flash应用程序可能会非常复杂,比如,有很多可视实例嵌套在一起,这样的话会形成一个树形结构,这个结构的根是stage,然后一级级到不同的实例,一般来说,要把这个树形结构倒过来看,即stage在顶部,在stage中的实例一级级排列在下面,要参考帮助中的图。这样的一个树状结构即display list,每个实例(stage也是实例)都是树中的一个节点(node),如何来处理这种复杂结构的事件呢?as3引入了事件流的概念事件流用于描述事件发生在display list中,遍历其所有node的过程,它可以分为3个阶段:1、捕获阶段(capture phase):从顶部(如stage)到目标2、目 阅读全文
posted @ 2013-07-03 20:23 辣鸡 阅读(221) 评论(0) 推荐(0) 编辑

摘要: 1.关于MovieClip和Sprite的鼠标事件,当不需要鼠标事件的时候将mouseEnabled和mouseChildren设为false. 不断的检测鼠标交互事件会消耗CPU,尤其是大量交互对象重叠的情况。2.对于执行时间太长的非动画内容,优先选择计时器,而不是 Event.ENTER_FRAME 事件。3.在 enterFrame 事件或 Timer 处理函数中,尽量减少对可导致重绘屏幕的显示对象外观的更改。4.尽量减少补间动画,以节省更多的CPU处理。把MC给stop5.场景里放入好多的子可视对象时,鼠标的滑动会导致cpu的狂飙;原因主要在于fp内部在不停的遍历可视对象.你可能会用过 阅读全文
posted @ 2013-07-03 20:22 辣鸡 阅读(253) 评论(0) 推荐(0) 编辑

2013年6月7日

摘要: ATF(Adobe Texture Format)是一种能提供最佳压缩效果的文件格式。ATF 文件主要是一个存储有损纹理数据(lossy texture data)的文件容器。它主要使用了两种类似技术:JPEG-XR1 压缩技术和基于块的压缩技术(简称块压缩技术),来实现它的有损压缩。ATF 为 GPU 优化贴图,支持压缩贴图格式ATF,减少在使用中显存的总量。这点对于移动设备特别重要。ATF 格式全称 Adobe Texture Format,说白了,就是奥多比专用贴图格式。这里大家注意到没有?Texture 这个词是在 GPU 加速的字典里才出现的。普通的图只能叫BitmapData 而到 阅读全文
posted @ 2013-06-07 09:40 辣鸡 阅读(1143) 评论(0) 推荐(0) 编辑

2013年6月4日

摘要: Flex 开发工作中, 组件的开发是比不可少的环节, 在你的自定义组件中合理地应用元标签可以使组件更容易, 更方便, 更友好地被引入到应用中.你可以为MXML和ActionScript文件插入元标签,以便为Flex编译器提供信息。可执行代码中的元标签不会被编译,但会为控制如何编译元标签所标识的代码提供信息。下表列出了 Flex 中可以应用于 ActionScript 类的元标签.标签描述[ArrayElementType]在数组中定义所有允许的数据类型。[Bindable]声明一个属性可以在代码中使用数据绑定表达式。[DefaultProperty]定义组件在MXML中使用时的默认属性的名称。 阅读全文
posted @ 2013-06-04 09:43 辣鸡 阅读(220) 评论(0) 推荐(0) 编辑