是N个按钮,按钮不能相交,相遇就碰开,鼠标放到按钮上时按钮停止运动!
请高手相帮~!
分数可追加~!谢谢~!
flash里让按钮在一个区域内无规则运动的一段代码~!flash高手进~!
答案:2 悬赏:80 手机版
解决时间 2021-12-30 21:00
- 提问者网友:半生酒醒
- 2021-12-30 02:41
最佳答案
- 五星知识达人网友:末日狂欢
- 2021-12-30 03:03
假如3个按钮b1,b2,b3;
帧1:
//初始化语句;
//你自己考虑_root["变量名前缀"+变量id号]=;
//另外对于相遇问题,我记得有个判断重合的函数,可以适合不规则形状的按钮或影片,你自己找下。
帧2:
l1=(random(3)-1)*Math.random();//防止运行有抖动感,每10帧取方向及速度;
l2=(random(3)-1)*Math.random();
l3=(random(3)-1)*Math.random();
l4=(random(3)-1)*Math.random();
l5=(random(3)-1)*Math.random();
l6=(random(3)-1)*Math.random();
b1._x=Math.max(Math.min(b1._x+l1,400),0);//边界处理;
b1._y=Math.max(Math.min(b1._y+l2,400),0);
b2._x=Math.max(Math.min(b2._x+l3,400),0);
b2._y=Math.max(Math.min(b2._y+l4,400),0);
b3._x=Math.max(Math.min(b3._x+l5,400),0);
b3._y=Math.max(Math.min(b3._y+l6,400),0);
帧3~11:
call(13);
帧12:
gotoAndPlay(2);
帧13:
l12=(b1._x-b2._x)*(b1._x-b2._x)+(b1._y-b2._y)*(b1._y-b2._y);//按钮圆心距平方值
l23=(b3._x-b2._x)*(b3._x-b2._x)+(b3._y-b2._y)*(b3._y-b2._y);
l13=(b1._x-b3._x)*(b1._x-b3._x)+(b1._y-b3._y)*(b1._y-b3._y);
if(l12<10000){
b1._x=Math.max(Math.min(b1._x-10*l1,400),0);//相遇时以10倍速度反方向弹开;
b1._y=Math.max(Math.min(b1._y-10*l2,400),0);
b2._x=Math.max(Math.min(b2._x-10*l3,400),0);
b2._y=Math.max(Math.min(b2._y-10*l4,400),0);
}else{
b1._x=Math.max(Math.min(b1._x+l1,400),0);
b1._y=Math.max(Math.min(b1._y+l2,400),0);
b2._x=Math.max(Math.min(b2._x+l3,400),0);
b2._y=Math.max(Math.min(b2._y+l4,400),0);
}
if(l23<10000){
b2._x=Math.max(Math.min(b2._x-10*l3,400),0);
b2._y=Math.max(Math.min(b2._y-10*l4,400),0);
b3._x=Math.max(Math.min(b3._x-10*l5,400),0);
b3._y=Math.max(Math.min(b3._y-10*l6,400),0);
}else{
b2._x=Math.max(Math.min(b2._x+l3,400),0);
b2._y=Math.max(Math.min(b2._y+l4,400),0);
b3._x=Math.max(Math.min(b3._x+l5,400),0);
b3._y=Math.max(Math.min(b3._y+l6,400),0);
}
if(l13<10000){
b1._x=Math.max(Math.min(b1._x-10*l1,400),0);
b1._y=Math.max(Math.min(b1._y-10*l2,400),0);
b3._x=Math.max(Math.min(b3._x-10*l5,400),0);
b3._y=Math.max(Math.min(b3._y-10*l6,400),0);
}else{
b1._x=Math.max(Math.min(b1._x+l1,400),0);
b1._y=Math.max(Math.min(b1._y+l2,400),0);
b3._x=Math.max(Math.min(b3._x+l5,400),0);
b3._y=Math.max(Math.min(b3._y+l6,400),0);
}
每个按钮:
on(rollOver){
_root.stop();
}
on(rollOut){
_root.play();
}
on(releaseOutside){
//点击释放后要执行的语句;
}
帧1:
//初始化语句;
//你自己考虑_root["变量名前缀"+变量id号]=;
//另外对于相遇问题,我记得有个判断重合的函数,可以适合不规则形状的按钮或影片,你自己找下。
帧2:
l1=(random(3)-1)*Math.random();//防止运行有抖动感,每10帧取方向及速度;
l2=(random(3)-1)*Math.random();
l3=(random(3)-1)*Math.random();
l4=(random(3)-1)*Math.random();
l5=(random(3)-1)*Math.random();
l6=(random(3)-1)*Math.random();
b1._x=Math.max(Math.min(b1._x+l1,400),0);//边界处理;
b1._y=Math.max(Math.min(b1._y+l2,400),0);
b2._x=Math.max(Math.min(b2._x+l3,400),0);
b2._y=Math.max(Math.min(b2._y+l4,400),0);
b3._x=Math.max(Math.min(b3._x+l5,400),0);
b3._y=Math.max(Math.min(b3._y+l6,400),0);
帧3~11:
call(13);
帧12:
gotoAndPlay(2);
帧13:
l12=(b1._x-b2._x)*(b1._x-b2._x)+(b1._y-b2._y)*(b1._y-b2._y);//按钮圆心距平方值
l23=(b3._x-b2._x)*(b3._x-b2._x)+(b3._y-b2._y)*(b3._y-b2._y);
l13=(b1._x-b3._x)*(b1._x-b3._x)+(b1._y-b3._y)*(b1._y-b3._y);
if(l12<10000){
b1._x=Math.max(Math.min(b1._x-10*l1,400),0);//相遇时以10倍速度反方向弹开;
b1._y=Math.max(Math.min(b1._y-10*l2,400),0);
b2._x=Math.max(Math.min(b2._x-10*l3,400),0);
b2._y=Math.max(Math.min(b2._y-10*l4,400),0);
}else{
b1._x=Math.max(Math.min(b1._x+l1,400),0);
b1._y=Math.max(Math.min(b1._y+l2,400),0);
b2._x=Math.max(Math.min(b2._x+l3,400),0);
b2._y=Math.max(Math.min(b2._y+l4,400),0);
}
if(l23<10000){
b2._x=Math.max(Math.min(b2._x-10*l3,400),0);
b2._y=Math.max(Math.min(b2._y-10*l4,400),0);
b3._x=Math.max(Math.min(b3._x-10*l5,400),0);
b3._y=Math.max(Math.min(b3._y-10*l6,400),0);
}else{
b2._x=Math.max(Math.min(b2._x+l3,400),0);
b2._y=Math.max(Math.min(b2._y+l4,400),0);
b3._x=Math.max(Math.min(b3._x+l5,400),0);
b3._y=Math.max(Math.min(b3._y+l6,400),0);
}
if(l13<10000){
b1._x=Math.max(Math.min(b1._x-10*l1,400),0);
b1._y=Math.max(Math.min(b1._y-10*l2,400),0);
b3._x=Math.max(Math.min(b3._x-10*l5,400),0);
b3._y=Math.max(Math.min(b3._y-10*l6,400),0);
}else{
b1._x=Math.max(Math.min(b1._x+l1,400),0);
b1._y=Math.max(Math.min(b1._y+l2,400),0);
b3._x=Math.max(Math.min(b3._x+l5,400),0);
b3._y=Math.max(Math.min(b3._y+l6,400),0);
}
每个按钮:
on(rollOver){
_root.stop();
}
on(rollOut){
_root.play();
}
on(releaseOutside){
//点击释放后要执行的语句;
}
全部回答
- 1楼网友:白昼之月
- 2021-12-30 03:36
虽然我很聪明,但这么说真的难到我了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯