拼图设计思路与源码二[自动吸附篇]
通过上一篇的画图篇,我们就可以使拼图在游戏舞台上随意的铺放了,但是到目前为止还不会吸附,也就是当两张图案正确的相邻两个拼图拼在一起的时候不会吸在一起.
我们先来回顾一下上一节中所定义的碎片类Piece
package net.conanlwl
{
import flash.display.Sprite;
public class Piece extends Sprite
{
private var m_row...
拼图设计思路与源码一[画图篇]
想要制作非正规矩形的凹凸拼图,第一步就得先画好每一个小拼图的轮廓.然后再通过位图填充,从而制作出每一个小拼图碎片.小碎片的轮廓示意图如下图所示:

图1
如图1所示,为拼图中左上角的一个碎片,所以该碎片只要画右边与下边的轮廓,其它边都为直线.
每一边的轮廓都由一个圆弧(BCD)以及圆弧两个端点(B点,D点)与矩形的两个角(A点与E点)相连的两条直线(AB与DE)组成.所以一整个碎片轮廓就是由这一系列的直线与弧线组成的.
为了不使每一个碎片的外形都一样,所以加了一小些随机的因素.例如圆弧的凹与凸,以及圆心的位置.
当圆弧随机为凸时,圆心的位置在图中的直线OP上的随意一点.相反,为凹时,则为O'P上的随意一点.其中P为AE的中点.当然,我们也可以在AE中取一小段线段作为P的随机点也行.
在本实例中,为了不让四条边的圆弧都为凹时出现相交的情况,所以圆弧的半径为碎片矩形长宽中最短一边的1/6.且圆弧的圆心角都为270度.当然在保证四条边的弧线都为凹时不相交的情况下,半径以及圆心角也都可以加上一些随机的因素的.
至此,我们只要用一个数组来存储四条边上的这些圆弧以及端点角点的信息,然后通过一个连线的函数来进行画图,就可以画出一个封闭的拼图碎片轮廓了.
其它碎片,我们要计算的也只是右边与下边,左边与上边都是沿着上一个碎片的信息画的.如第二列的左边,其实就与第一列的右边是一样的.第二行的上边其实就是第一行的下边.
另外需要注意的是,AS3中对于封闭区域轮廓的要求必须是头尾顺笔连接而成..如图中的右边.画图的顺序必须是:A连到B,然后两从B顺时针画圆弧BCD,再D连到E.不能先连直线AB与DE,然后再画一个圆弧BCD,而且还不分顺画或逆画,这样子就算外形看是一个封闭的曲线,但当填充时就会出现意想不到的效果.
以下是计算某一边的信息的函数,通过参数pos来决定要画右边或下边
...AS3编写凹凸拼图游戏(能够智能吸附)
花了几天的时间,终于完成了这个拼图游戏.当两张相邻的拼图拼并正确的时候.程序和自动地将其吸附..另.可使用鼠标的滚轮在拼图上滚动以旋转拼图,增加了游戏的难度.
游戏源码过段时间整理完成再说吧...报了个驾校,要考法规了.
多添加了在拼图上按键盘空格键即可旋转拼图的功能(10.27)
[Mark][转]在Flash中嵌入元数据标签
这篇文章描述了在Adobe Flash CS4专业版中怎么利用[Embed]元数据标签来嵌入不同类型的媒体、数据和图片资源。文章提供了多个例子关于怎么链接和现实元数据信息,并讨论了在你的工程中加入元数据标签有用的多种原因。
元数据在Flash CS4以前的版本中是不支持的。这对于在Flex中写代码然后尝试在Flash中编译的人会产生一些问题。在Flash CS4中使用元数据标签的主要优势之一就是她简化了Flex-Flex的工作流程。
基本要求
为了能够完成这篇文章中的示例,你需要如下软件和文件:
Flash CS4 Professional; Flex 3 SDK
示例文件: http://download.macromedia.com/pub/developer/embed_metadata.zip (ZIP, 390K)
关于作者
Tareq AlJaber是Adobe的一位软件质量工程师,他专注于Flash-Flex工作流程以及编译特性。在进入Adobe之前,他在一个制造工作制作3D动画,为Jordan Television创立了虚拟实验室。Tareq在 Jordan University获得了计算机科学学位,并获得了 Cal State East Bay University的MBA。在他的空闲时间里,Tareq喜欢看和玩足球或者篮球,并很喜欢阅读。他最喜欢的书是Leap of Faith: Memoirs of an Unexpected Life。这是他的博客flashauthoring.blogspot.com。
...
[Mark][转]FLEX Builder compiler arguments 的设置
【编译参数】
-default-background-color int
-default-frame-rate int
-default-size width height
设置SWF的背景色,帧频与宽高,这个也可以通过元标签设置,诸如
[SWF(width="720",height="560",backgroundColor="#000000")]
-default-script-limits
-max-recursion-depth
-max-execution-time
定义应用脚本程序的执行限制,最大代码条目,最大递归层次,最大的执行时间
-debug=true|false
是否生成调试用SWF,调试用SWF会比一般的SWF要大。在Flex Builder中,默认为true,而在以Release方式时发布时,默认为false,所以用Release发布的文件会被debug时小很多。
-optimize=true|false
优化as,减少文件大小,增加性能,默认为true。
-strict=true|false
是否采用严谨模式
-use-network=true|false
可读取网络或者可读取本地文件
-includes class [...]
强制导入类,不管是否曾使用过这个类
-include-libraries library [...]
强制导入SWC文件中的所有类,不管是否曾使用过这个类
-frames.frame label class_name [...]
将类绑定label标记的帧上
【后台相关】
-context-root string
-context-path string
设置{context.root}的值,这个数值被应用在flex-services.xml,flex-config.xml内,是flash Remoting的必要参数,以确认服务端目录。也可通过设置Flex Server内的context ...
一个简单的扑克框选选牌效果
一开始没写代码前,还以为一个简单的碰撞检测就能完成效果,可是写了测试以后,才发现了一个深度问题,不该碰测的也都碰测了,所以最后得用划的方框的四个顶定来确认哪一张开始往右做检测..
AS3歌词秀源码之歌词分析篇
想做实现歌词秀效果,首先第一步就是得加载歌词,而现在通用的还是LRC歌词格式,所以在加载歌词之前,我们有必要先了解一下什么是LRC歌词格式.(从百度百科COPY过来的..
)
LRC歌词是一种包含着“[*:*]”形式的“标签(tag)”的、基于纯文本的歌词专用格式。最早由郭祥祥先生(Djohan)提出并在其程序中得到应用。这种歌词文件既可以用来实现卡拉OK功能(需要专门程序),又能以普通的文字处理软件查看、编辑。当然,实际操作时通常是用专门的LRC歌词编辑软件进行高效编辑的。以下具体介绍LRC格式中的“标签”。
时间标签(Time-tag)
形式为"[mm:ss]"或"[mm:ss.fff]"(分钟数:秒数)。
数字须为非负整数,比如"[12:34.5]"是有效的,而"[0x0C:-34.5]"无效。它可以位于某行歌词中的任意位置。一行歌词可以包含多个时间标签(比如歌词中的迭句部分)。
根据这些时间标签,用户端程序会按顺序依次高亮显示歌词,从而实现卡拉OK功能。另外,标签无须排序。
标识标签(ID-tags)
其格式为"[标识名:值]"。大小写等价。以下是预定义的标签.
[ar:艺人名]
[ti:曲名]
[al:专辑名]
[by:编者(指编辑LRC歌词的人)]
[offset:时间补偿值]其单位是毫秒,正值表示整体提前,负值相反。这是用于总体调整显示快慢的。
样例
[ar:unknown]
[ti:sample]
[al:none]
[by:me]
[01:02.355][00:00]Thislineshouldbesungtwice
[0:5.7]Andthisone...onceonly.
开发标准(供程序员阅读参考)以下列出了开发支持LRC格式的软件时应遵守的一些标准。
&nb...
as3实现仿千千静听歌词秀效果

模拟千千静听的一个歌词秀效果,歌词面板可拖曳进行音乐进度同步调节.
音乐加载LRC歌词文件格式
预览地址: http://www.conanlwl.net/demo/Spectrum/musicplayer.swf
9.0.124后loadPolicyFile失效问题
在9.0.124前..我们会使用Security.loadPolicyFile()的方法来加载非根目录下的跨域文件
如Security.loadPolicyFile("http://www.conanlwl.net/demo/crossdomain.xml")
可更新9.0.124后..使用还是会报跨域错误..
这是由于9.0.124对安全策略作了一些更新..
引用
在4月份的安全更新之前,crossdomain是可以放于任何位置的,只要在代码中指定Security.loadPolicyFile即可,当然,默认的会首先去找站点根目录下(对于tomcat来说就是root了)。
不过在安全更新之后,flash的安全策略发生了一些变化。
其 中一点就是,将策略文件控制类型由原来的ALL改为了MASTER,MASTER策略文件称为主策略文件,在4月份以前,基本上没人注意这个主策略文件, 和我们常用的策略文件有什么区别。主策略文件是置放在站点根目录下,对整个站点访问权限进行约束的策略文件。这个改变使得默认的必须在站点根目录下置放 crossdomain文件,即使你在自己的站点中需要crossdomain,也必须获得主策略文件的许可。
如果这种限制,就要求一定有对服务器控制的能力,至少你要能在根目录放置文件。但是有些时候,没有这样的权限,因此,官方还提供了另一种做法,在后台代码级别允许提供策略文件来取代master策略。
以.net为例
String policyFile = "....(省略)"
Response.AppendHeader("Content-Type", "text/xml; charset=UTF-8");
Response.AppendHeader("X-Permitted-Cross-Domain-Policies", "all");
Response.Write(policyFile);
这种代码级别的做法就是,在loadPolicy时,reposonse中的header里加上("X-Permitted-Cross-Domain-Policies", "all");然后再返回policyFile。
PS:上面内容来源...
AS3实现频谱与波形图
AS3声音功能中最令人兴奋的新增功能之一,就是可以访问声音频谱数据.这在以往的版本中是比较难实现的,或者得借助第三方工具才能完成的,而现在,这些频谱功能给内建到SoundMixter类里的computeSpectrum().所以在编写频谱之前,我们先从AS3的帮助文档中来认识一下computeSpectrum()是什么东西.
先浏览一下效果先,点击频谱可以切换效果 (注意,浏览前,关掉或暂停其它FLASH的声音,如本页右侧的音乐播放器,computeSpectrum () 会捕捉到其它FLASH上的声音而导致沙箱安全冲突= =!)
computeSpectrum () 方法
public static function computeSpectrum(outputArray:ByteArray, FFTMode:Boolean = false, stretchFactor:int = 0):void
获取当前声音波形的快照,并将其放在指定的 ByteArray 对象中。 这些值已设置为标准浮点值(范围为 -1.0 到 1.0)格式。新值覆盖了传递到 outputArray 参数的 ByteArray 对象。 创建的 ByteArray 对象的大小固定为 512 个浮点值,其中前 256 个值表示左声道,后 256 个值表示右声道。
参数 outputArray:ByteArray — 用于保存与声音关联的值的 ByteArray 对象。 如果由于安全性限制 (areSoundsInaccessible == true) 而导致任何声音不可用,则 outputArray 对象将保持不变。 如果停止了所有声音,则用零填充 outputArray 对象。
FFTMode:Boolean (default = false) — 一个用于指示是否首先对声音数据执行 Fourier 转换的布尔值。 将此参数设置为 true 会导致方法返回的是频谱而不是原始声音波形。 在频谱中,左侧呈现的是低频,右侧呈现的是高频。
stretchF...
关于找茬游戏如何添加新图的方法
这几天都有几个朋友都有问我的那个找茬DEMO(相关帖子:大家来找茬设计思路与源码)如果要添加新的找茬图,要如何加.....
看来我的代码写得不好,没人看得懂.......我在这里就写个简单的教程,介绍一下如何添加新图吧...首先下载一个找茬的资源包;
下载完解压以后,有四个文件,分别是gameData.as pic01_07.fla Music.fla 以及 图片元件.fla
首先我们必须先用PhotoShop或者其它作图软件,制作找茬的原图,制作找茬的图必须遵循以下的原则:
1.每张小图的尺寸都为371*300.
2.图片的不同数必须在5个或5个以上.
3.所有的不同处所在的矩形不能有相交,因为在玩家的眼里,两个不同处相交的话,他都会认为那是一个不同而已.
4.修改所有的不同处以后,先记录下所有不同处的大小与位置,在游戏中,全部统一不同处为一个矩形,所以就算你左右两张图片不同的地方是一个圆形的区域,我们在记录时也要记录这个圆形所占的矩形区域.
5.把修改后的图片,上下拼接起来,拼接后的图片尺寸为371*600,最后保存为PNG格式.
当按照上面的原则修改完图片并保存为PNG文件以后,我们使用FlashCS3以上版本打开资源文件里的Pic01_07.fla, 然后按菜单栏的 "文件"->"导入"->"导入到库",选择刚做完的图,按"打开"就把刚做完的图片导入到库里了.

图1
如图1所示,我导入了一张名为hello.pn...
最新DEMO--上海麻将
以前玩FC游戏的时候,玩过一个上海II,所以就想把它"移植"到FLASH里面来.游戏的名字有些也叫做麻将连连看.但其实规则还是跟连连看不一样的.
游戏规则:
游戏采用45度伪3D俯视视角,游戏里一共有144个麻将,通过排叠有层次的放于游戏里,规则也是通过点击两个相同的麻将(春夏秋冬可以互消,梅兰菊竹可以互消)将其从游戏里面消除,直到将所有的麻将都消除完为止.但是一开始并不是所有的麻将都是可点击的,只有活子才能点击.所谓的活子,就是左右两边必须至少有一边是没有相邻的麻将的,卡一半也不行,并且没有被上一层的麻将所压到.被压到一个角也不行.

FC上的麻将II

在FLASH里的上海麻将
