当前位置: 首页 > 图文教程 > Flash动画 > Flash动画制作 > Flash游戏制作基础:跟随鼠标的曲线

Flash动画制作
Flash5的DATE对象(二)
Flash层的运用(一)
Flash 神奇遮罩之原理篇(1)
Flash 神奇遮罩之应用篇(5)
Flash 神奇遮罩之图片篇(3)
Flash 神奇遮罩之透明度篇(1)
Flash MX的自由变形工具(1)
Flash MX的自由变形工具(3)
用动作脚本动态创建和控制文本框 (7)
Freehand和Flash的结合应用(2)
Freehand和Flash的结合应用(6)
Flash 神奇遮罩之原理篇(2)
Flash 神奇遮罩之应用篇(1)
Flash 神奇遮罩之透明度篇(2)
实例学用Flash MX增强的AS功能(2)
FW MX和Flash MX的亲密合作(3)
Flash5 有声音的三眼狼(一)
Freehand和Flash的结合应用(5)
Flash5 有声音的三眼狼(三)
Freehand和Flash的结合应用(11)

Flash动画制作 中的 Flash游戏制作基础:跟随鼠标的曲线


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-22   浏览: 90 ::
收藏到网摘: n/a

Flash游戏制作基础,跟随鼠标的曲线,曲线和其它物体之间进行碰撞检测。

友情提示:文章末尾提供Fla源文件的下载。

首先按Ctrl+J修改属性。

Flash游戏制作基础:跟随鼠标的曲线

创建一个MC,如下图。是放大到800%的效果。

Flash游戏制作基础:跟随鼠标的曲线

然后直接使用鼠标跟随,下面代码直接放到第一帧,创建轨迹。

 tail_len = 2;
tail_nodes = 100;
nodes = new Array();
_root.attachMovie("the_head", "the_head", 1, {_x:250, _y:200});
_root.createEmptyMovieClip("the_tail", 2);
for (x=1; x    nodes[x] = {x:the_head._x, y:the_head._y};
}
the_head.onEnterFrame = function() {
    this._x = _root._xmouse;
    this._y = _root._ymouse;
    the_tail.clear();
    the_tail.lineStyle(2, 0x00ff00);
    the_tail.moveTo(the_head._x, the_head._y);
    nodes[0] = {x:the_head._x, y:the_head._y};
    for (var x = 1; x        rotation = Math.atan2(nodes[x].y-nodes[x-1].y, nodes[x].x-nodes[x-1].x);
        pos_x = nodes[x-1].x+tail_len*Math.cos(rotation);
        pos_y = nodes[x-1].y+tail_len*Math.sin(rotation);
        nodes[x] = {x:pos_x, y:pos_y};
        the_tail.lineTo(pos_x, pos_y);
    }
};

演示效果如下。

然后再建立一个MC设置如下,做一面墙来检测碰撞。

Flash游戏制作基础:跟随鼠标的曲线

添加一个物体,来实验碰撞检测。添加如下Action到主场景第一帧。

 tail_len = 2;
tail_nodes = 100;
nodes = new Array();
_root.attachMovie("the_head", "the_head", 1, {_x:250, _y:200});
_root.createEmptyMovieClip("the_tail", 2);
_root.attachMovie("wall", "wall", 3, {_x:250, _y:200});
for (x=1; x    nodes[x] = {x:the_head._x, y:the_head._y};
}
the_head.onEnterFrame = function() {
    this._x = _root._xmouse;
    this._y = _root._ymouse;