昨晚想起了很想用绘图API绘制一把剑,突然脑海又想起了风云当中剑圣使用的“万剑归宗”这些武学招式,想想之后,于是好无聊写了一下,不过不能做到万剑归宗的效果,就省去了一个字。呵呵,很想把学过的知识,把在看到的融合到图形表现上。这样做起来flash 会显得更加有个性一点,可能看起来是一种自娱自乐的东西,不过里面的开心的是把一种已经存在的东西转化为新的东西。
既然万剑归宗,当然不能缺少一把剑。看看绘制一把剑,这把剑采用一种比较笨的方法,记录点的位置转化线条表现上。
第一步:绘制一把剑
把每一个点记录起来,然后大概使用一个数组里面保存。
记录之后,我们就可以对其进行连线,从第一个点开始连接,一个接一点进行连。采用moveTo 和lineTo 常用组合就能连串成每一个点位置
然后为剑添加一些圆和一些线,效果图就是上面那张图片。
第二步:交互操作
实现剑的操作,无非就是复制一系列的对象,然后对其进行分布。实现剑围绕圆分布。
stage.addEventListener(MouseEvent.CLICK,onClick);
private function onClick(event:MouseEvent):void
{
//产生一系列的对象,对其对象进行分布处理,按圆的轨迹进行分布。
}
效果如下图
第三步:剑归宗
将剑进行运动,向他的中心点进发。剑向一个方向线性运动。谈到运动就是需要我们常常使用的速度和位移改变。
vx=speed*Math.cosA;
vy=speed*Math.sinA;
速度是向量,它可以分解成两个不同方向的分速度。根据角度偏移了。
剑。x+=vx;
剑。y+=vy; 在每一帧的刷新下,剑会产生位移改变。
代码清单:
下面乱剑一堆哈哈。这一个和之前一篇关于粒子爆效果原理是一样的,采用Math.atan2的方法处理运动方面很多角度问题。应用很广泛
第四步:对剑的分布进行改造
有时候可以改变对图形的分布位置也能够创造出不一样的东西。采用圆 采用二维矩阵,都可以实现到。
下面是另外一个版本,采用的复制的手法不一样,有时候采用循环能够一次性看到全貌,但是有时候采用时间错开,会看到不一样的过程。Timer 类能够实现到时间错开的过程。我们可以对其进行改造看看效果如何
timer=new Timer(100);
timer.addEventListener(TimerEvent.TIMER,onTimer);
private function onTimer(event:TimerEvent):void
{
按时间间隔创建对象,能够看到创建的过程。
}
下面为代码清单。