一定范围内随机排列不重合的多个小球 |
| 作者:佚名 来源:闪吧 作者: ycccc8202 更新:2007-1-13 20:49:42 错误报告 我要投稿 |
先看效果:
点击浏览该文件 代码如下:
var stage_w = 400; var stage_h = 400; var m_width = m._width; m._visible = 0; function setMc() { for (i=1; i<11; i++) { M = m.duplicateMovieClip("m"+i, i); M_x = random(stage_w); M_y = random(stage_h); if (i == 1) { M._x = M_x; M._y = M_y; } if (i>1) { for (j=1; j<i; j++) { if (Math.sqrt((this["m"+j]._x-M_x)*(this["m"+j]._x-M_x)+(this["m"+j]._y-M_y)*(this["m"+j]._y-M_y))<m_width) { i--; break; } } if (j == i) { M._x = M_x; M._y = M_y; } } M.speed = 0; M.onEnterFrame = function() { if (this.hitTest(_xmouse, _ymouse)) { this.ZoomIn(130, .8, .6); } else { this.ZoomIn(100, .8, .6); } }; } } setMc(); MovieClip.prototype.ZoomIn = function(pos_scale, j, k) { this.speed = this.speed*j+(pos_scale-this._xscale)*k; this._yscale = this._xscale += this.speed; }; btn.swapDepths(100); btn.onPress = function() { for (i=1; i<11; i++) { _root["m"+i].removeMovieClip(); } setMc(); };
//这里的原理是每复制一个小球都与场景上已经复制出来的每个小球进行判断距离. //感谢大家批阅. 源文件如下:
点击浏览该文件
|
|
| 文章录入:skyuu 责任编辑:skyuu |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |