1、Flash 游戏制作基础:跟随鼠标的曲线 作者:闪电儿 类型: 转载 来源: 网页教学网Flash 游戏制作基础,跟随鼠标的曲线,曲线和其它物体之间进行碰撞检测。网页教学网友情提示文章末尾提供 Fla 源文件的下载。首先按 Ctrl+J 修改属性。创建一个 MC,如下图。是放大到 800%的效果。然后直接使用鼠标跟随,下面代码直接放到第一帧,创建轨迹。tail_len = 2; tail_nodes = 100; nodes = new Array(); _root.attachMovie(“the_head“, “the_head“, 1, _x:250, _y:200); _root.cr
2、eateEmptyMovieClip(“the_tail“, 2); for (x=1; xtail_nodes; x+) nodesx = 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); nodes0 = x:the_head.
3、_x, y:the_head._y; for (var x = 1; xtail_nodes-1; +x) rotation = Math.atan2(nodesx.y-nodesx-1.y, nodesx.x-nodesx-1.x); pos_x = nodesx-1.x+tail_len*Math.cos(rotation); pos_y = nodesx-1.y+tail_len*Math.sin(rotation); nodesx = x:pos_x, y:pos_y; the_tail.lineTo(pos_x, pos_y); ; 演示效果如下:(图一)然后再建立一个 MC 设置如
4、下,做一面墙来检测碰撞。添加一个物体,来实验碰撞检测。添加如下 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; xtail_nodes; x+) nodesx = x:the
5、_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); nodes0 = x:the_head._x, y:the_head._y; for (var x = 1; xtail_nodes-1; +x) rotation = Math.atan2(nodesx.y-nodesx-1.y, nodesx.x-nodesx-1.x); pos_x = nodesx-1.x+tail_len*Math.cos(rotation); pos_y = nodesx-1.y+tail_len*Math.sin(rotation); nodesx = x:pos_x, y:pos_y; if (wall.hitTest(pos_x, pos_y, true) the_tail.lineStyle(2, 0xff0000); the_tail.lineTo(pos_x, pos_y); ; 效果如下:(图 2)源文件下载: 曲线.rar