代码改变世界

随笔分类 -  ActionScript3.0

压缩UI深度的代码实现

2015-06-19 16:07 by 阿诚de窝, 415 阅读, 收藏, 编辑
摘要: 记录一下,或许同样使用深度的NGUI以后会用到。目前的项目的UI是用Stage3D实现的,采用了类似NGUI填写深度来确定覆盖关系,但同时可以使用的深度是有一个固定范围的,导致的问题是如果UI过多深度可能就会不够用,对于这种情况可以写段代码进行深度的压缩,比如如果两个图片相互之间不会重叠则可以使用同... 阅读全文

[AS3 3D Demo] Stage3D学习过程中开发的3个Demo

2015-05-26 08:15 by 阿诚de窝, 1172 阅读, 收藏, 编辑
摘要: 1.飞机大战 基于Starling开发,使用了对象池技术的Demo。 2.3D人物2D背景游戏Demo 基于Away3D开发,实现了3D资源管理、寻路和跳跃等功能。 3.全3D游戏Demo 基于Away3D和AwayPhysics开发,实现了全3D场景下的对话和移动等功能。 阅读全文

关于AS3里的Matrix3D中的appendXXX和prependXXX

2015-04-03 18:15 by 阿诚de窝, 946 阅读, 收藏, 编辑
摘要: 最近在看3D相关的一些基础,因为搞as3这么多年了,决定3D基础这块还是从AS3入手,3D游戏开发这块从U3D入手,扯远了,研究Matrix3D类时发现了矩阵处理转换时的一些方法均分为appendXXX和prependXXX两种,帮助文档中的解释是后置和前置的区别,搞不清楚,所以决定花点时间弄一下这... 阅读全文

【Stage3D学习笔记续】真正的3D世界(六):空间大战

2015-01-15 16:25 by 阿诚de窝, 412 阅读, 收藏, 编辑
摘要: 这就是书上的最终效果了,一个完整的空间大战游戏:点击查看源码这里并没有太多的新知识,所涉及的东西更多的是游戏开发方面的优化和技巧,下面我们大家一起来看看:飞船:类似粒子效果中的粒子创建方法,我们的游戏飞船也需要一样的创建机制进行创建,大家可以点击查看源码:GameActorGameActorPool... 阅读全文

【Stage3D学习笔记续】真正的3D世界(五):粒子特效

2014-12-24 18:04 by 阿诚de窝, 785 阅读, 收藏, 编辑
摘要: 先看效果,按下空格键添加粒子特效:一般而言粒子特效的实现都是比较复杂的,且不说实现粒子特效的编码和设计,光是编写一个粒子编辑器就不是简单的一件事,但是作者使用了很取巧的方式来完成,我们接下来深入代码看看作者是怎么处理的。Particle在我还没有看这本书的这章之前我认为一个Particle应该是一个... 阅读全文

【Stage3D学习笔记续】真正的3D世界(四):空间大战雏形

2014-12-22 16:43 by 阿诚de窝, 336 阅读, 收藏, 编辑
摘要: 前面几个星期抽空用Starling做了一个打飞机的小游戏(所以没有接着看书了),准备面试时用的,结果面试还是没过%>_<%...这个游戏打算过几天全部开源了那么接下来打算这周把《Stage3D初学者指南》全部看完,昨晚照着书上已经把一个可以用来展示的空间大战搞定了,效果如下:在我们的例子中,可以通过... 阅读全文

【Stage3D学习笔记续】真正的3D世界(三):纹理效果

2014-11-28 14:38 by 阿诚de窝, 613 阅读, 收藏, 编辑
摘要: 混合模式:代码示例是《Stage3D指南》中的直接弄出来的,可以通过点击键盘上的Q、W、E这3个按键,更换混合模式、模型和纹理,可以直观的查看不同混合模式的效果,住:下方的地形使用"context3D.setBlendFactors(Context3DBlendFactor.ONE, Context... 阅读全文

【Stage3D学习笔记续】真正的3D世界(二):显示模型

2014-11-28 14:34 by 阿诚de窝, 382 阅读, 收藏, 编辑
摘要: 虽然我们进入真3D世界了,但是上一章的Demo仍然是显示的一个平面,尽管我们的平面在3D空间中旋转可以看出一点3D透视的效果,但是既然是真3D,就要拿出点3D的样子来!如果要显示3D模型,我们就要告别直接使用代码编写顶点数据的时代了,想想上一节,平面的四边形手写顶点或许还过得去,但是如果手写一个立方... 阅读全文

【Stage3D学习笔记续】真正的3D世界(一):透视矩阵

2014-11-28 14:26 by 阿诚de窝, 918 阅读, 收藏, 编辑
摘要: 如果各位看官跟着我的学习笔记一路看过来的话,一定会吐槽我的,这都是什么3D啊?从头到尾整个都是在使用GPU绘制一堆2D图像而已,的确,之前我们一直使用正交矩阵利用GPU加速来实现2D世界的展示,算不上真3D,但是正是由于有了之前的学习我们实现真3D世界的学习才会更加轻松,下面的笔记就让我们真正的进入... 阅读全文

Stage3D学习笔记(七):动态纹理

2014-11-28 14:24 by 阿诚de窝, 627 阅读, 收藏, 编辑
摘要: 本章用来作为Starling的滤镜实现原理的一个补充,但是为了了解原理,我们会使用原生API进行编码。我们知道,当我们调用drawTriangles方法时,我们的图像是绘制到后台缓冲区的,只有调用present方法时才会把图像呈现到屏幕。我们先来看看Context3D的两个方法:setRenderT... 阅读全文

【Stage3D学习笔记续】山寨Starling(十二):总结和一些没提到的东西

2014-11-27 18:52 by 阿诚de窝, 316 阅读, 收藏, 编辑
摘要: 我们的山寨Starling到这里就告一段落了,不得不说这是一个非常优秀的2D框架,他的设计和架构为后来的许多框架都提供了很好的参考,比如现在正在崛起的Egret,我们的一番解读也只是窥见了Starling内部的一部分,有兴趣的朋友可以继续看Starling的源码,一定会有更多的收获!后悔的是我到这个... 阅读全文

【Stage3D学习笔记续】山寨Starling(十一):Touch事件体系

2014-11-27 16:45 by 阿诚de窝, 605 阅读, 收藏, 编辑
摘要: 我们的山寨Starling版本将会在这里停止更新了,主要还是由于时间比较有限,而且我们的山寨版本也很好的完成了他的任务“了解Starling的核心渲染”,接下来的Starling解析我们将会直接阅读Starling的源码来了解其它的内部运行方式。Touch事件体系无疑是除了核心渲染外最重要的东西了,... 阅读全文

【Stage3D学习笔记续】山寨Starling(十):高效游戏设计、纹理集和ATF

2014-11-26 20:10 by 阿诚de窝, 767 阅读, 收藏, 编辑
摘要: 我发布了经过批处理优化的v0.3版,点击下载:https://github.com/hammerc/hammerc-study-Stage3D/archive/v0.3.zip先看看我们批处理优化后程序的效果吧!首先,为了能明显的看出差距,我把未优化v0.2版本的MovieClipTest.swf的... 阅读全文

【Stage3D学习笔记续】山寨Starling(九):上下文丢失处理方法

2014-11-25 18:14 by 阿诚de窝, 796 阅读, 收藏, 编辑
摘要: Stage3D在运行中是存在随时会丢失上下文的尴尬情况。渲染内容丢失的问题本身就说明是因为丢失了Context3D对象。出现此问题的原因很多,通常还不是因为Stage3D应用。比如在win7系统中,当按下Ctrl+Alt+Delete键时会出现类似“锁定计算机”和“启动任务管理器”的菜单选项,这就会... 阅读全文

【Stage3D学习笔记续】山寨Starling(八):核心优化(批处理)的实现

2014-11-24 16:52 by 阿诚de窝, 942 阅读, 收藏, 编辑
摘要: 批处理是使GPU进行高效绘制的一种技术手段,也是整个渲染流程中最核心的技术,到目前为止我们并没有使用到这种技术手段,下面我们看看我们现在的渲染机制。先想一想我们最开始是怎么向GPU绘制一幅图像的,可以回头查看Stage3D学习笔记(五):通过矩阵操作纹理这篇文章;绘制流程:我们创建了两个矩阵,一个正... 阅读全文

【Stage3D学习笔记续】山寨Starling(七):一般优化方法简介及混合模式

2014-11-20 15:45 by 阿诚de窝, 481 阅读, 收藏, 编辑
摘要: 关于事件的优化:遍历注册的事件由foreach改变为fori,在大量数据遍历时会有提升;事件池优化:所有的事件都使用一个对象池进行保存,而不是使用到时进行创建,使用EventDispatcher类的dispatchEventWith方法可以使用事件池,使用事件池在大量使用事件的情况下可以极大的提升运... 阅读全文

【Stage3D学习笔记续】山寨Starling(六):动画实现和测试

2014-11-18 16:28 by 阿诚de窝, 337 阅读, 收藏, 编辑
摘要: 我发布了一个版本v0.2,该版本是未优化版本,且没有添加Touch事件体系,但是由于是最基础且未优化的,所以可以通过参考代码快速的了解实现原理。接下来的一段笔记开始进行渲染优化,我会把所有的目光都集中到渲染的优化之上。点击下载:https://codeload.github.com/hammerc/... 阅读全文

【Stage3D学习笔记续】山寨Starling(五):纹理计算和尺寸计算

2014-11-17 17:09 by 阿诚de窝, 430 阅读, 收藏, 编辑
摘要: 尺寸计算:Starling中的尺寸是以像素为单位的,这一切都得力于我们使用的正交矩阵,还记得我们顶点数据中的位置数据么,如果我们提交的矩形的四个顶点为(0, 0)(0, 100)(100, 0)(100, 100),那么最终通过正交矩阵的转换后绘制到舞台时将会是长宽都为100个像素的矩形。那么Sta... 阅读全文

【Stage3D学习笔记续】山寨Starling(四):渲染代码实现及测试程序

2014-11-14 20:20 by 阿诚de窝, 417 阅读, 收藏, 编辑
摘要: 本章会实现最核心的代码,所以涉及点会比较多,这里会发布一个版本,方便日后的回退查看。点击下载:https://codeload.github.com/hammerc/hammerc-study-Stage3D/zip/v0.1先看看Demo:代码代码下面说一下一些比较关键的点:事件播放处理:Disp... 阅读全文

【Stage3D学习笔记续】山寨Starling(三):Starling核心渲染流程

2014-11-10 20:10 by 阿诚de窝, 766 阅读, 收藏, 编辑
摘要: 这篇文章我们剔除Starling的Touch事件体系和动画体系,专门来看看Starling中的渲染流程实现,以及其搭建的显示列表结构。由于Starling是模仿Flash的原生显示列表,所以我们可以参照原有的知识体系来阅读Straling的代码。Starling类:Straling类是整个Starl... 阅读全文