自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (17)
  • 收藏
  • 关注

原创 AS3应用程序模块化开发与ApplicationDomain

当程序越来越大,我们需要把它拆分成多个swf,在需要的时候动态加载。拆分时应该尽量把不同的类编译进唯一的swf,避免因swf文件增多而使整个程序的文件尺寸增大。 按此原则可以拆分出以下两种swf,借助 ApplicationDomain 共享其代码和资源。      模块(Module)           按照程序逻辑,可以拆分出多个“功能模块”,如“注册”、“管理”等等;按照游戏或社区类程序的关卡或场景,可以拆分出不同的“场景模块”。      这些模块不是主程序运行必须的,只在需要的时

2010-08-09 10:09:00 1069

原创 APE物理引擎初探+实例

先去http://www.cove.org/ape/index.htm 下载作者的最新版APE 然后打开说明文档 docs/api/index.html这里一共十二个类,看起来很少,所以初学者可以更有信心了。***************************************************************************************************先简单介绍一下:AbstractCollection  所有群组的抽象类Abstrac

2010-08-30 10:20:00 594

原创 APE物理引擎教程(最少的代码,写最有趣的游戏)

<br />APE 物理引擎有很好的效果,重要的是类很少,简单易学。 <br />看到网上这个引擎的教程还比较少,当初找的好苦,发几个我淘来的,<br />下面几个教程是在做游戏过程中看的:<br />APE物理引擎首页<br />http://www.cove.org/ape/index.htm<br />API文档<br />http://www.cove.org/ape/docs/api/<br />google论坛(有介绍贴图,碰撞检测……)<br />http:

2010-08-29 15:16:00 1220

原创 主流Flash物理引擎分析

<br />最近研究物理引擎,对网上能找到的开源物理引擎做了一下比较,完整的分析报告没有放出来,只放一些分析资料。<br />(一) 2D物理引擎<br /><br />1、 Box2D<br />A、 地址:http://box2dflash.sourceforge.net/,http://box2dflash.boristhebrave.com/docs/2.0.2/manual<br />B、 最后更新日期:还在更新,2.1a版<br />C、 活跃情况:用户活跃,最新的消息在2010年1月,中间

2010-08-29 14:34:00 1450

原创 目前为止所有的AS3物理引擎(AS3 Physics Engine)

<br />AS3物理引擎(AS3 Physics Engine)越来越多,在此收集一下,此页随时更新,欢迎ctrl + D收藏<br /><br />APE <---点此进入<br />APE前身是as2版本的Flade,呼声很高,优点就是清晰简单,一共没有几个类:),目前版本alpha 0.45 ,有API文档和示例,教程有一篇quick start ,在Google Group上有一个论坛可以讨论。svn上一直在更新目前svn上的版本为0.5a<br /><br />=========

2010-08-29 14:28:00 853

转载 11个以上的手把手游戏开发教程

<br />       Flash是个非常灵活的游戏建立工具,大多数时候我们从网上可以找到flash游戏AS3资源比如Zuma-like Flash Game With AS3 Source Code,对于想建立自己游戏的初学者来说,手把手教程是个好的选择。很多网站都提供了免费或付费的flash教程,这儿收集了十一个以上的flash游戏开发手把手教程。慢用!<br /><br />Flash里的高等数学函数<br /><br />许多flash用户想利用自然运动法则做些真正酷的

2010-08-27 09:51:00 780

原创 像素级碰撞的一种算法

<br />    在flash中,任何形状的元件都是被包含在一个完整的矩形容器里的,此碰撞算法就是根据这一点来获取两个不规则形状的交集,这么说可能你听起来有些不明白,我们来进一步解释一下。<br />假如我们这里有两个不规则形状的MC,即mc1和mc2。如下图:<br /><br /><br />为了更方便于的理解,我将形状做在的容器mc1和mc2用单色的矩形来表示,如下图:<br /><br /><br />此时我们可以很明显的看到两个矩形的交集,根据mc1和mc2深度不同,可以有以下两种情况:<br

2010-08-26 10:45:00 618

原创 游戏效率

<br />     经过一些代码的测试,得出以下结论,希望能对大家有所帮助。<br />     首先cacheAsBitmap属性不能滥用,使用以后显示对象会按一个像素一个像素的移动,效果不好,但是对于没有缩放和旋转的平移的矢量图,会显著的提高效率,提高的幅度取决于原矢量图的复杂程度。<br />矢量图动画的缩放平移动画的效率 会比 同样大小的位图的缩放平移动画 的效率低,同样,低多少取决于原矢量图的复杂程度。所以简单的矢量图并不需要替换成位图在做动画。<br />将镜头

2010-08-23 23:17:00 455

原创 AS3实现RPG游戏地图引擎

<br />    目前已经完成精确到像素的任意不规则形状的碰撞检测算法。同时也考虑将地图信息转为二维数组以便A*自动寻径。这样在操作上用碰撞,AI上用A*,一定能给玩家带来完美的游戏体验。<br /><br />这里的碰撞检测主要依靠封装好的类PPCD(perfectPixelCollisionDetection),它的接口如下:<br /><br />类PPCD:<br /><br />1. 返回发生碰撞的矩形边界:getCollisionRect (        target

2010-08-23 22:59:00 1031

原创 即时战略游戏开发—Rectangle应用实战+Array中被你忽略的方法

<br /> 上一次发了一篇Rectangle对象在游戏开发中的应用的文章,下面还是围绕Rectangle对象介绍一下在即时战略游戏中的实际应用。同时还将会用到数组对象中平时用的不多的几个方法。<br /><br />      玩过《红警》或者《帝国时代》的朋友应该都知道,这类游戏有一个框选功能。鼠标在屏幕上拉一个框,处在方框之内的都被选中。如图:<br /><br /><br />      我们这个例子的原型是这样的:<br /><br />      1、坦克的选择有框选

2010-08-23 22:55:00 576

原创 Rectangle对象在游戏开发中的应用2

<br />上一次发了Rectangle对象的应用,觉得有必要补充一下,希望朋友们活学活用<br /><br />应用三:对两个并不存在的对象进行碰撞检测<br /><br />有的时候你想进行碰撞的两个物体并不存在,那么我们就无法通过正常的hitTest手段检测两个物体是否发生了碰撞。这个时候通过Rectangle对象无疑是最方便的。<br /><br />下面举出两个例子来说明一下这种应用:<br /><br /><br /><br /><br />首先说明上图的假设并不多见,但我只

2010-08-23 22:54:00 422

原创 Rectangle对象在游戏开发中的应用

<br />     一直知道在flash.geos包里面有一个Rectangle对象却很少用过。无意中试用了一下发现可用的地方还很广。所以一冲动把现在的项目中的很多地方都改成了Rectangle判断了。<br /><br />应用一:屏幕滚屏<br /><br />滚屏是游戏中最常做的一项工作,一般的思路是map.x++ map.y++,然后随时判断map是否走到了头。<br /><br />下面的代码中我用了一张4000*4000的图片来说明两种方式:<br /><br />

2010-08-23 22:51:00 459

原创 MouseEvent的target和currentTarget属性区分

<br />      MouseEvent有target和currentTarget两个属性。这两个属性有区别,target返回的是最先接收到点击的交互物体,而currentTarget返回的是你addEventListener注册的这个对象。见下图:<br />     <br /><br />

2010-08-23 22:50:00 655

原创 谈谈代码重构

<br />     开发人员可能听到过"bad smell"这个词,这个词用在软件编码中是什么意思呢? 代码还有smell吗?当然没有,正如计算机病毒,bug等词一样,这只是个形象的说法。这个词在这里的意思是代码实现了需求,但是代码却不精炼,冗余,结构混乱,难读懂,难维护,难扩展等等。与之相对应的一个词是"refactor",即代码重构。我们在看些外国人写的程序时可以发现,他们的代码里一般会定义大量的类、接口、方法,类与类,类与接口之间很多是继承和实现的关系,方法的代码行数很少,超过20行

2010-08-22 14:59:00 432

原创 ActionScript3的四种与点有关的操作符:. | .. | … | ::

<br />      突然回想起很久很久以前,跟同事解说过这几种操作符。它们很特别,都是由点组成,并且是递进式的:一点、两点、三点 以及 四点—— . 、.. 、… 、:: 。分别是如下几个“点操作符”:一点(.):<br />这个操作符大家都用得多了,用来访问类的属性或方法的,例如:Sprite.x、Sprite.addChile();两点(..):<br />不多用 E4X 语法操作 XML 的人会对这个操作符陌生。两点(..)的这个操作符,用于访问 XML 或 XML

2010-08-21 18:10:00 403

原创 flash player 10.1和AIR 1.5.2新增了System.disposeXML()方法

      垃圾回收是开发者值得注意的敏感话题。flash player的垃圾回收行为是不可控的。最近,我发现flash player 10.1和AIR 1.5.2新增了System.disposeXML()方法。这又是一个可让开发者手动进行内存释放的方法(虽然只针对 XML 对象)。目前,我所知道的,可进行释放内存的API有(相对把变量赋值为null或其它非正规手段来说):System.disposeXML()BitmapData.dispose()Loader.unloadAndStop()Sy

2010-08-21 17:42:00 739

原创 为什么指定Vector对象的长度,运行速度更快?

<br />     Vector构造函数的fixed参数不是多余的。使用固定长度的Vector对象比长度不固定的Vector要快。这是老早就知道的事情了。但,问起原因,我真的不知道。今天,我在Adobe文档上无意找到答案:每次 Vector 大小增加时,都将分配一个新的内存块。Vector的当前内容会复制到新内存块中。这种额外的分配和复制数据会降低性能。所以,尽量在创建Vector对象时,能将长度设为固定值就设为固定值。

2010-08-21 17:41:00 772

原创 分析flash mmorpg地图的实现

<br />网上看一篇关于目前几个流行flash mmorpg地图实现的分析,这里也想说说自己的一些看法。<br />常见的三种方式:<br />1、整图<br />2、Tile元素拼装<br />3、栅格化切片<br />整图<br /><br />整图加载很好理解直接加载一张背景图。这种方式比较适合小场景(面积不要超过两屏),例如可以用来做悦来客栈、家里的菜园子或者王员外的内院。<br />整图的表现最大的优点就是可以让美工随意发挥,画面可以做得很细致。当然缺点也比较明显无法做得太大,否则加

2010-08-21 17:16:00 689

原创 内存优化——对象池

1:不用的事件及时remove,或者用弱引用2:减少显示对象的使用3:如果对一个对象要频繁使用时,用对象池 关于对象池<br /><br />对象池的工作原理: 对象池的工作原理的核心有两点:使用和缓存,即对于那些被频繁使用的对象,在使用完后,不立即将它们释放,而是将它们缓存起来,以供后续的应用程序重复使用,从而减少创建对象和释放对象的次数,进而改善应用程序的性能。<br />优点:能快速取出对象节省了NEW对象所产生的cpu,时间的消耗。能很好的控制内存的占用,使用时从对象池取出,使用完毕放回。中间不涉及

2010-08-21 15:56:00 704

原创 监视flash player在运行期间的性能表现

<br />我的想法就是在Flash Player运行期间简单的加入一个性能监测工具方便我了解它的一些情况。FrameStats工具会帮助你判断Flash Player是正在执行代码呢还是正在做渲染,抑或两者都在进行。<br />这个工具是用纯粹的AS3来开发的,用下面的代码加入到你的显示对象容器内(DisplayObject Container)。<br /><br /><br /> this.addChild( new FrameStats(this) );<br /><br /><br

2010-08-20 10:08:00 776

原创 使用AS3中的FTE来渲染文本(FLash文本引擎入门)

<br />最近很多开发者都在关注手机游戏的开发,那么我来看看一个新特性(FP10),使用这种方法可以很好的解决跨硬件的问题.<br /><br />FTE (Flash文本引擎)<br />FTE 提供对文本度量、格式和双向文本的复杂控制的低级别支持。设计 FTE 的主要目的在于为开发人员创建文本处理组件提供基础。 在下面简单的例子中,你将会发现使用FTE并不复杂.<br /><br /> 下面代码需要FP10<br /><br /><br /> package {<br />

2010-08-20 09:50:00 1854 1

原创 降低显示列表上的复杂性来提高性能

<br />增加Flash应用程序性能的一种最简单方法是,移除显示列表中所有的隐藏对象,同时使用最少数量的显示对象。 代码将通过遍历整个显示列表来执行,即从显示列表最上层(舞台),到主应用程序类。 Flash Player执行代码,并从上到下重绘显示列表中的所有的孩子,直到到达显示对象。 容器可以使任何继承自DisplayObjectContainer的类,如UIComponent,Group或者Sprite。 <br />下载 (19.12 KB)<br />昨天 23:26<br

2010-08-20 09:44:00 810

原创 关于运行环境 Capabilities

<br />as3.中的 flash.system.Capabilities 类有许多静态方法返回关于播放器和计算机的信息,比如操作系统,语言,音频和视频。通过Capabilities 属性确定用户所拥有的设备的类型,可以向尽可能多的用户提供适当的内容。 更有用的是可以通知服务器发送合适的 SWF 文件,或是通知 SWF 文件变更其播放方式。<br /><br />检测播放器版本<br />version 属性 指定 Flash Player 平台和版本信息。<br />trace("vers

2010-08-14 18:35:00 757

原创 SharedObject保存数据到本地例子

SharedObject 类用于在用户计算机或服务器上读取和存储有限的数据量,类似于浏览器 Cookie。可使用共享对象执行以下操作:(1)保持本地永久性。(2)在 Flash Media Server 上存储并共享数据。(3)实时共享数据。存值:var test:SharedObject = SharedObject.getLocal("test");// 创建一个本地保存数据的对象 test.data.user = "username"; test.d

2010-08-14 17:34:00 1184

原创 采用SharedObject保存数据到本地

<br />SharedObject 类用于在用户计算机或服务器上读取和存储有限的数据量。使用共享对象,可在永久贮存在本地计算机或远程服务器上的多个客户端 SWF 文件和对象之间实现实时数据共享。本地共享对象类似于浏览器 Cookie,远程共享对象类似于实时数据传输设备。为了使用远程共享对象,您需要 Adobe Flash Media Server。 <br />可使用共享对象执行以下操作:保持本地永久性。这是使用共享对象的最简单方法,并且无需使用 Flash Media Server。例如

2010-08-14 17:31:00 950

原创 用setChildIndex()方法来设置显示对象的层深

      setChildIndex 方法允许你向上或向下移动显示对象在显示列表内的位置。你可以把显示列表考虑成一个数组,它的索引位置是从第0 层开始的。如果你创建了3 个显示对象,那么他们的位置就是第0,1,2 层。第二层的对象在外面,第0 层的在最里面。      如果你想把某一个影片剪辑移动到所有显示对象的最里层,可以用setChildIndex(myMovieClip,0)执行这条语句之后,其余的对象将会自动往上提升一层,及他们的索引位置都加上了1,原来第0 层的元素移到了第1 层,第1 层的

2010-08-14 17:24:00 3869

原创 as3数据的浅复制和深复制

<br />复制一个数组,是指生成一个新的数组,内容和原有数组一样。数组赋值经常需要用到,比较重要。<br />有两种复制方式:浅复制和深复制。这个概念不是数组特有的。对引用类型的数据复制方式有有浅复制和深复制的区别。<br /><br />1.何时用浅复制?何时用深复制?<br /><br />      当数组元素全部都是基元数据类型时,即全部是值类型时,复制是没有浅复制和深复制的分别的。若要复制,使用下文中的浅复制方法即可。<br />     但是当数组元素全部是复杂数据类型,即引用数据

2010-08-13 13:38:00 591

原创 自定义FLEX滚动条滑块样式

在Flex里我们可以使用downArrowSkin,upArrowSkin,trackSkin,thumbSkin方法的设置滚动条的样式..不过由于设计的关系..滚动条的thumbSkin常设置成一个"点"或一个"块"..这个块是固定大小的..不像Flex自带的滚动条会随滚动区域的高度而改变..如果直接设置thumbSkin,那滑块将拉变形~非常难看..这时候我们可以使用verticalScrollBar里的setScrollProperties方法来调整滑块高度..   

2010-08-10 22:05:00 1526

原创 一个不错的AS同学的博客

<br />Super Flex的博客 <br />http://gain-loss.org/?page_id=74

2010-08-09 10:47:00 443

原创 Flash游戏开发 大纲

<br />图片来源:<br />http://www.flashas.net/uploads/allimg/100416/1644201616-0.jpg

2010-08-09 10:45:00 488

原创 Flash Player 10.1内部机制(第二部分) - 执行模型之可变跑道

By Xiaowei Lin on April 7, 2010 1:03 AM | No Comments<br />演讲人: Lee Thomason (lthomaso@adobe.com)<br />翻译: 林晓伟 (xwlin@adobe.com)<br /><br />上一篇我们介绍了Flash Player的代码库是如何归并一体以及对Flash平台的后期开发产生的影响,在第二节里,我们将重点讨论Flash Player的体系结构及其对开发人员的影响。<br

2010-08-09 10:43:00 446

原创 二水的blog (一个不错的flash工作者的blog)

<br />http://www.cnblogs.com/sevenyuan/default.html?page=11

2010-08-09 10:37:00 421

原创 一些flash牛人们的Blog

<br />Alex Uhlmann:http://weblogs.macromedia.com/auhlmann/<br /><br />Christophe Coenraets:http://coenraets.org/ 特别推荐<br /><br />Code Slinger:http://blogs.digitalprimates.net/codeSlinger/<br /><br />Deitte:http://www.deitte.com/<br /><br />Doug

2010-08-09 10:29:00 456

原创 如何复制一个加载进来的swf

<br />代码var urlLoader:URLLoader = new URLLoader();<br />urlLoader.addEventListener(Event.COMPLETE, onComplete);<br />urlLoader.dataFormat = URLLoaderDataFormat.BINARY;<br />urlLoader.load(new URLRequest("target.swf"));<br /><br />function onCompl

2010-08-09 10:29:00 506

原创 AS3中实现渐变遮罩的方法

<br />舞台上有两个影片剪辑实例:pic_mc和mask_mc<br />其中pic_mc中是一张位图,<br />mask_mc中是一个绘制的矢量矩形,从左至右使用渐变色添充,在颜色面板中设置左边色标alpha值为0,右边色标alpha值为100.<br />为舞台中的两个实例取实例名:pic_mc和mask_mc.<br />新建AS层,加入如下语句,即可实现渐变遮罩的效果:<br />pic_mc.mask=mask_mc;<br />//下面使用cacheAsBitmap,是为了让遮罩也能随

2010-08-09 10:25:00 856

原创 AS3倒影算法

<br />function createRef(picSource:DisplayObject):void<br />{<br />    // 倒置<br />    var bd:BitmapData = new BitmapData(picSource.width, picSource.height, true, 0x12346f);<br />    var mtx:Matrix = new Matrix();<br />    mtx.d = -1;<br />    mtx

2010-08-09 10:25:00 546

原创 getChildByName()与getChildAt()效率比较

<br />var monClip:MovieClip = new MovieClip();<br />monClip.name = "monOcurrence";<br />addChild ( monClip );<br />var depart:Number = getTimer();<br />for ( var i:int = 0; i< 5000000; i++ )<br />{<br />getChildByName ("monOcurrence");<br />}<b

2010-08-09 10:22:00 981

原创 自定义事件和自定义事件类

<br />正确区分自定义事件和自定义事件类,如果你只是简单地发送一个你自己的事件而不需要更多信息,可以使用<br /> var myInfo:Event=new Event("myOwnEvent");<br />dispatchEvent(myInfo)<br /> <br />来实现,我们看到自定义事件很简单,只需给Event类传入一个特殊的不与内置事件类型重复的字符串即可。<br />    可以做如下测试: 代码//outer<br />var outer = new Sprite

2010-08-09 10:20:00 590

原创 LoaderInfo类

LoaderInfo 类可提供有关已加载的 SWF 文件或图像文件(JPEG、GIF 或 PNG)的信息。 LoaderInfo 对象可用于任何显示对象。 提供的信息包括<br /><br />加载进度、<br />加载程序的 URL 和加载内容、<br />媒体的字节总数以及媒体的标示的高度和宽度。<br /><br /><br />访问 LoaderInfo 对象: flash.display.Loader 对象的 contentLoaderInfo 属性 -

2010-08-09 10:16:00 521

原创 AS3.0中Matrix类的学习经验(改变注册点、旋转图像)

1.如何使用Matrix类来改变注册点:    做相册功能时一开始最烦的就是注册点在(0,0)的位置,为了能方便的旋转、缩放操作,需要将注册点移动到中心,参考雪の猫的方法,做了简化: 代码var ōbj=this.myImageBitmap; //要改变的图片或影片剪辑var matrix:Matrix = obj.transform.matrix;matrix.tx=0;matrix.ty=0;var halfW:Number = obj.width/2;var halfH:Numbe

2010-08-09 10:13:00 5797

最全C&C++程序员面试宝典程序员面试宝典(C/C++版,pdf扫描)

包括面试技巧,数据结构,设计模式,数据库,操作系统,网络等概述,可在面试前巩固一下基础

2018-12-18

Cocos2d-x实战 Lua卷.pdf

Cocos2d-x实战 Lua卷.pdf 版 介绍Cocos2d-x Lua游戏编程和开发技术的书籍,介绍了使用Cocos2dx Lua中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台移植、程序代码管理、两大应用商店发布产品。全书分为六篇: 基础篇、进阶篇、数据与网络篇、优化篇、跨平台移植篇和实战篇,共23章。基础篇包括第1~8章,分别是Cocos2d-x Lua介绍、环境搭建、标签、菜单、精灵、场景、层、动作、特效、动画和用户事件。进阶篇包括第9~12章,分别是游戏音乐与音效、粒子系统、瓦片地图和 物理引擎。数据与网络篇包括第13~15章,分别是数据持久化、基于HTTP的网络通信、Node.js与WebSocket网络通信。优化篇为第16 章,主要介绍性能优化。跨平台移植篇包括第17章和第18章,分别是移植到Android平台和移植到iOS平台。实战篇包括第19~23章,分别是使用 Git管理程序代码、项目实战——迷失航线手机游戏、为迷失航线游戏添加广告、发布放到Google play应用商店和发布放到苹果App Store。

2018-09-11

交互式计算机图形学 基于WEBGL的自顶向下方法 7th 源代码

该资源是《交互式计算机图形学 基于OpenGL着色器的自顶向下方法(第7版) 》里面的代码

2018-09-02

计算机图形学 基于WebGL的自顶向下方法 第7版

全部章节的 另一本webGL学习资料,内容为全部内容。自OpenGL之后的另一本计算机图形学资料,适合Web端开发三维的同学

2018-08-31

我所理解的Cocos2d-x ,秦春林编著 ,P4381.pdf

《我所理解的Cocos2d-x》针对最新的 Cocos2d-x 3.x版本,介绍了Coco2d-x游戏引擎的基本架构、渲染机制,以及各个子模块的功能和原理,并结合OpenGL ES图形渲染管线,深入探讨了游戏开发中涉及的相关图形学的知识,内容包括:Cocos2d-x的基本架构及渲染机制、纹理相关的知识、OpenGL ES 2.0渲染管线、计算机字体的绘制、多分辨率支持、事件分发、碰撞与物理引擎、游戏对象模型架构、Genius-x开源框架、脚本在游戏引擎中的架构等。

2018-08-29

微信跳一跳源码

微信小游戏跳一跳源码,喜欢的童鞋可以拿走,共同学习

2018-01-21

3D数学基础:图形与游戏开发高清带目录中文版.pdf

邓恩 (作者), 帕贝利 (作者), 史银雪 (译者), 陈洪 (译者), 王荣静 (译者) 《3D数学基础:图形与游戏开发》专业培训机构指定教学参考书,多家游戏开发企业共同推荐,游戏业界权威,探索游戏开发背后的核心秘密。《3D数学基础:图形与游戏开发》主要介绍了基本的3D数学概念,这对电脑游戏开发人员和编程人员来说尤为重要。作者详尽地讨论了数学理论,并在必要时提供几何说明,帮助读者形成直观的3D感。书中还提供了将理论应用于实践的C++类,并且在每章结尾处提供练习。《3D数学基础:图形与游戏开发》介绍了基础概念,如向量、坐标空间、矩阵、变换、欧拉角、齐次坐标空间、几何图元、相交性检测和三角网格。

2017-07-03

xcode配置iOS10.3开发包

2017-03-29

WebGL编程指南

基本信息 原书名:WebGL Programming Guide: Interactive 3D Graphics Programming with WebGL (OpenGL) 原出版社: Addison-Wesley Professional 作者: (美)Kouichi Matsuda Rodger Lea(松田浩一,罗杰.李) 译者: 谢光磊 出版社:电子工业出版社 ISBN:9787121229428 上架时间:2014-6-11 出版日期:2014 年6月 开本:16开 页码:470 版次:1-1 --------------------- 目录 《WebGL编程指南》 第1 章 WebGL 概述 1 WebGL 的优势 3 使用文本编辑器开发三维应用 3 轻松发布三维图形程序 4 充分利用浏览器的功能 5 学习和使用WebGL 很简单 5 WebGL 的起源 5 WebGL 程序的结构 6 总结 7 第2 章 WebGL 入门 9 Canvas 是什么? 10 使用[canvas] 标签 11 DrawRectangle.js 13 最短的WebGL 程序:清空绘图区 16 HTML 文件(HelloCanvas.html) 16 JavaScript 程序(HelloCanvas.js) 17 用示例程序做实验 22 绘制一个点(版本1) 22 HelloPoint1.html 24 HelloPoint1.js 24 着色器是什么? 25 使用着色器的WebGL 程序的结构 27 初始化着色器 29 顶点着色器 31 片元着色器 33 绘制操作 34 WebGL 坐标系统 35 用示例程序做实验 37 绘制一个点(版本2) 38 使用attribute 变量 38 示例程序(HelloPoint2.js) 39 获取attribute 变量的存储位置 41 向attribute 变量赋值 42 gl.vertexAttrib3f() 的同族函数 44 用示例程序做实验 45 通过鼠标点击绘点 46 示例程序(ClickedPoints.js) 47 注册事件响应函数 48 响应鼠标点击事件 50 用示例程序做实验 53 改变点的颜色 55 示例程序(ColoredPoints.js) 56 uniform 变量 58 获取uniform 变量的存储地址 59 向uniform 变量赋值 60 gl.uniform4f() 的同族函数 61 总结 62 第3 章 绘制和变换三角形 63 绘制多个点 64 示例程序(MultiPoint.js) 66 使用缓冲区对象 69 创建缓冲区对象(gl.createBuffer()) 70 绑定缓冲区(gl.bindBuffer()) 71 向缓冲区对象中写入数据(gl.bufferData()) 72 类型化数组 74 将缓冲区对象分配给attribute 变量(gl.vertexAttribPointer()) 75 开启attribute 变量(gl.enableVertexAttribArray()) 77 gl.drawArrays() 的第2 个和第3 个参数 78 用示例程序做实验 79 Hello Triangle 80 示例程序(HelloTriangle.js) 80 基本图形 82 用示例程序做实验 83 Hello Rectangle(HelloQuad) 84 用示例程序做实验 85 移动、旋转和缩放 86 平移 87 示例程序(TranslatedTriangle.js) 88 旋转 91 示例程序(RotatedTriangle.js) 93 变换矩阵:旋转 97 变换矩阵:平移 100 4×4 的旋转矩阵 101 示例程序(RotatedTriangle_Matrix.js) 102 平移:相同的策略 105 变换矩阵:缩放 106 总结 108 第4 章 高级变换与动画基础 109 平移,然后旋转 109 矩阵变换库:cuon-matrix.js 110 示例程序(RotatedTriangle_Matrix4.js) 111 复合变换 113 示例程序(RotatedTranslatedTriangle.js) 115 用示例程序做实验 117 动画 118 动画基础 119 示例程序(RotatingTriangle.js) 119 反复调用绘制函数(tick()) 123 按照指定的旋转角度绘制三角形(draw()) 123 请求再次被调用(requestAnimationFrame()) 125 更新旋转角(animate()) .126 用示例程序做实验 128 总结 130 第5 章 颜色与纹理 131 将非坐标数据传入顶点着色器 131 示例程序(MultiAttributeSize.js) 133 创建多个缓冲区对象 134 gl.vertexAttribPointer() 的步进和偏移参数 135 示例程序(MultiAttributeSize_Interleaved.js) 136 修改颜色(varying 变量) 140 示例程序(MultiAttributeColor.js) 141 用示例程序做实验 144 彩色三角形(ColoredTriangle.js) 145 几何形状的装配和光栅化 145 调用片元着色器 149 用示例程序做实验 149 varying 变量的作用和内插过程 151 在矩形表面贴上图像 153 纹理坐标 156 将纹理图像粘贴到几何图形上 156 示例程序(TexturedQuad.js) 157 设置纹理坐标(initVertexBuffers()) 160 配置和加载纹理(initTextures()) 160 为WebGL 配置纹理(loadTexture()) 164 图像Y 轴反转 164 激活纹理单元(gl.activeTexture()) 165 绑定纹理对象(gl.bindTexture()) 166 配置纹理对象的参数(gl.texParameteri()) 168 将纹理图像分配给纹理对象(gl.texImage2D()) 171 将纹理单元传递给片元着色器(gl.uniform1i()) 173 从顶点着色器向片元着色器传输纹理坐标 174 在片元着色器中获取纹理像素颜色(texture2D()) 174 用示例程序做试验 175 使用多幅纹理 177 示例程序(MultiTexture.js) 178 总结 183 第6 章 OpenGL ES 着色器语言(GLSL ES) 185 回顾:基本着色器代码 186 GLSL ES 概述 186 你好,着色器! 187 基础 187 执行次序 187 注释 187 数据值类型(数值和布尔值) 188 变量 188 GLSL ES 是强类型语言 189 基本类型 189 赋值和类型转换 190 运算符 191 矢量和矩阵 192 赋值和构造 193 访问元素 195 运算符 197 结构体 200 赋值和构造 200 访问成员 200 运算符 201 数组 201 取样器(纹理) 202 运算符优先级 203 程序流程控制:分支和循环 203 if 语句和if-else 语句 203 for 语句 204 continue、break 和discard 语句 205 函数 205 规范声明 207 参数限定词 207 内置函数 208 全局变量和局部变量 209 存储限定字 209 const 变量 209 Attribute 变量 210 uniform 变量 211 varying 变量 211 精度限定字 211 预处理指令 213 总结 215 第7 章 进入三维世界 217 立方体由三角形构成 217 视点和视线 218 视点、观察目标点和上方向 219 示例程序(LookAtTriangles.js) 221 LookAtTriangles.js 与RotatedTriangle_Matrix4.js 224 从指定视点观察旋转后的三角形 225 示例程序(LookAtRotatedTriangles.js) 227 用示例程序做实验 228 利用键盘改变视点 230 示例程序(LookAtTrianglesWithKeys.js) 230 独缺一角 232 可视范围(正射类型) 233 可视空间 234 定义盒状可视空间 235 示例程序(OrthoView.html) 236 示例程序(OrthoView.js) 237 JavaScript 修改HTML 元素 239 顶点着色器的执行流程 239 修改near 和far 值 241 补上缺掉的角(LookAtTrianglesWithKeys_ViewVolume.js) 243 用示例程序做实验 245 可视空间(透视投影) 246 定义透视投影可视空间 247 示例程序(perspectiveview.js) 249 投影矩阵的作用 251 共冶一炉(模型矩阵、视图矩阵和投影矩阵) 252 示例程序(PerspectiveView_mvp.js) 254 用示例程序做实验 257 正确处理对象的前后关系 258 隐藏面消除 260 示例程序(DepthBuffer.js) 262 深度冲突 263 立方体 266 通过顶点索引绘制物体 268 示例程序(HelloCube.js) 268 向缓冲区中写入顶点的坐标、颜色与索引 271 为立方体的每个表面指定颜色 274 示例程序(ColoredCube.js) 275 用示例程序做实验 277 总结 279 第8 章 光照 281 光照原理 281 光源类型 283 反射类型 284 平行光下的漫反射 286 根据光线和表面的方向计算入射角 287 法线:表面的朝向 288 示例程序(LightedCube.js) 291 环境光下的漫反射 296 示例程序(LightedCube_ambient.js) 298 运动物体的光照效果 299 魔法矩阵:逆转置矩阵 301 示例程序(LightedTranslatedRotatedCube.js) 302 点光源光 304 示例程序(PointLightedCube.js) 305 更逼真:逐片元光照 308 示例程序(PointLightedCube_perFragment.js) 309 总结 310 第9 章 层次模型 311 多个简单模型组成的复杂模型 311 层次结构模型 313 单关节模型 314 示例程序(JointMode.js) 315 绘制层次模型(draw()) 319 多节点模型 321 示例程序(MultiJointModel.js) 323 绘制部件(drawBox()) 326 绘制部件(drawSegments()) 327 着色器和着色器程序对象:initShaders() 函数的作用 332 创建着色器对象(gl.createShader()) 333 指定着色器对象的代码(gl.shaderSource()) 334 编译着色器(gl.compileShader()) 334 创建程序对象(gl.createProgram()) 336 为程序对象分配着色器对象(gl.attachShader()) 337 连接程序对象(gl.linkProgram()) 337 告知WebGL 系统所使用的程序对象(gl.useProgram()) 339 initShaders() 函数的内部流程 339 总结 342 第10 章 高级技术 343 用鼠标控制物体旋转 343 如何实现物体旋转 344 示例程序(RotateObject.js) 344 选中物体 347 如何实现选中物体 347 示例程序(PickObject.js) 348 选中一个表面 351 示例程序(PickFace.js) 352 HUD(平视显示器) 355 如何实现HUD 355 示例程序(HUD.html) 356 示例程序(HUD.js) 357 在网页上方显示三维物体 359 雾化(大气效果) 359 如何实现雾化 360 示例程序(Fog.js) 361 使用w 分量(Fog_w.js) 363 绘制圆形的点 364 如何实现圆形的点 364 示例程序(RoundedPoint.js) 366 α 混合 367 如何实现α 混合 367 示例程序(LookAtBlendedTriangles.js) 369 混合函数 369 半透明的三维物体(BlendedCube.js) 371 透明与不透明物体共存 372 切换着色器 373 如何实现切换着色器 374 示例程序(ProgramObject.js) 375 渲染到纹理 379 帧缓冲区对象和渲染缓冲区对象 380 如何实现渲染到纹理 381 示例程序(FramebufferObject.js) 382 创建帧缓冲区对象(gl.createFramebuffer()) 385 创建纹理对象并设置其尺寸和参数 385 创建渲染缓冲区对象(gl.createRenderbuffer()) 386 绑定渲染缓冲区并设置其尺寸(gl.bindRenderbuffer(), gl.renderbufferStorage()) 386 将纹理对象关联到帧缓冲区对象(gl.bindFramebuffer(), gl.framebufferTexture2D()) 388 将渲染缓冲区对象关联到帧缓冲区对象(gl.framebufferRenderbuffer()) 389 检查帧缓冲区的配置(gl.checkFramebufferStatus()) 390 在帧缓冲区进行绘图 390 绘制阴影 392 如何实现阴影 392 示例程序(Shadow.js) 393 提高精度 399 示例程序(Shadow_highp.js) 400 加载三维模型 401 OBJ 文件格式 404 MTL 文件格式 405 示例程序(OBJViewer.js) 406 自定义类型对象 409 示例程序(OBJViewer.js 解析数据部分) 411 响应上下文丢失 418 如何响应上下文丢失 419 示例程序(RotatingTriangle_contextLost.js) 420 总结 422 附录A WebGL 中无须交换缓冲区 423 附录B GLSL ES 1.0 内置函数 427 角度和三角函数 428 指数函数 429 通用函数 430 几何函数 433 矩阵函数 434 矢量函数 435 纹理查询函数 436 附录C 投影矩阵 437 正射投影矩阵 437 透视投影矩阵 437 附录D WebGL/OpenGL :左手还是右手坐标系? 439 示例程序(CoordinateSystem.js) 440 隐藏面消除和裁剪坐标系统 443 裁剪坐标系和可视空间 444 什么是对的? 446 总结 448 附录E 逆转置矩阵 449 附录F 从文件中加载着色器 453 附录G 世界坐标系和本地坐标系 . 457 本地坐标系 458 世界坐标系 459 变换与坐标系 461 附录H WebGL 的浏览器设置 . 463

2016-02-20

用ActionScript开发高级可视化组件

用ActionScript开发高级可视化组件 详细介绍 我们可以用ActionScript开发在Adobe® Flex™应用中使用的高级可视化组件,这个主题,包 括以下方面的内容: 1. 关于创建高级组件 2. 组件的实现 3. 使组件具备可访问性 4. 为组件增加版本号 5. 组件设计的最佳实践 6. 例子:创建一个复合组件 7. 疑难问题 简单组件一般都是现存Flex 组件的子类,它们通过设置skpins 或styles 属性来修改父组 件的外观,或者添加一些新的功能。比如,为Button 控件增加一个新的事件类型,或者更改 DataGrid 控件缺省的styles 和skins。更多信息参见,Simple Visual Components in ActionScript. 在高级组件中,通常会执行以下动作:

2009-10-05

CSS.Mastery.精通CSS(中文版).part02

刚才搜索了一下,论坛里只有英文版的,恰好前几天下载到中文版的,虽然有点大,还是上传和大家分享了。 个人想法:虽然翻译得不怎么样,但结合着英文版,还是挺不错的。如果英语水平还行,对照着金山词霸看,是不错的选择。

2008-09-12

拉格朗日(Lagrange)插值实验

新编的,计算方法用,拉格朗日(Lagrange)插值实验课上用到的

2007-11-30

计算方法中的牛顿插值

可以看看,不是很难,蛮好实现的,在计算方法中使用的

2007-11-30

操作系统中的分页存储

自己编的分页存储 操作系统,实现了分页系统

2007-11-30

设备管理程序 操作系统中的

自己做的操作系统中的设备管理程序,很久了。。。

2007-11-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除