登录
注册
搜索
帮助
主站
会员
界面
简洁版本
在线
灵动游戏论坛
游戏专区
【游戏教程】
Flash中的球形碰撞问题
帖子标题
灵动官方
【活动公告】
【产品发布】
【新游快报】
近期热门
【云之秘境专区】
【葬魂之诗专区】
【天空之城OL】
【勇者之路专区】
游戏专区
【游戏杂谈】
【游戏搜罗】
【游戏教程】
休闲娱乐
【七嘴八舌】
【影视贴图】
【游戏资源】
经典游戏区
【灵动喷射2专区】
【乖乖猪世界专区】
【灵动嘻哈外传区】
【金庸群侠传】
【圣猫传】
站务管理
【接待大厅】
1
/ 1 页
1
跳转
页
查看:
946
标题: Flash中的球形碰撞问题
本主题由
版主
阿平 于 2008-7-30 13:11:37 执行 设置高亮 操作
阿平
称号:落
头衔:
灵动总管
UID:
11959
精华贴:
2
威望值:
8
魅力点:
5
功勋值:
9
经验数:
470
积分点:
125
灵动币:
0
状态:
离线
帖子:
561
最后报道:
2008-12-01
2008-07-29 10:27
|
只看楼主
树型
|
收藏
|
小
中
大
1
Flash中的球形碰撞问题
摘自C22 帖到着给大家分享一下
附上源码:
//把你舞台上的MC实例名放入数组,测试
var ballA:Array = [ball1, ball2, ball3, ball4, ball5];
//随机初始化每个MC的运动速度和方向
for (var i = 0; i<ballA.length; i++) {
ballA.dx = 5*rand1_1();
ballA.dy = 5*rand1_1();
ballA.N=i;
}
//随机产生1或-1
function rand1_1():Number {
return random(2) ? -1 : 1;
}
Stage.scaleMode = "noScale";
Stage.align = "TL";
var sw:Number = Stage.width;
var sh:Number = Stage.height;
var stageListener:Object = new Object();
//舞台大小改变时,重置sw、sh
stageListener.onResize = function() {
sw = Stage.width;
sh = Stage.height;
};
Stage.addListener(stageListener);
onEnterFrame = function () {
for (var i = 0; i<ballA.length; i++) {
//如果到了边界,就反射
if ((ballA._x<ballA._width/2 && ballA.dx<0) or (ballA._x>sw-ballA._width/2 && ballA.dx>0)) {
ballA.dx *= -1;
}
if ((ballA._y<ballA._height/2 && ballA.dy<0) or (ballA._y>sh-ballA._height/2 && ballA.dy>0)) {
ballA.dy *= -1;
}
//检测所有MC之间是否有碰撞,有就根据情况改变“增量”方向
for (var j = i+1; j<ballA.length; j++) {
if (myHitTest(ballA,ballA[j])) {
//if (ballA.hitTest(ballA[j])) {
mc12(ballA, ballA[j]);
ballA._x += ballA.dx;
ballA[j]._x += ballA[j].dx;
ballA._y += ballA.dy;
ballA[j]._y += ballA[j].dy;
}
}
//移动一个“增量”
ballA._x += ballA.dx;
ballA._y += ballA.dy;
}
updateAfterEvent();
};
//碰撞函数,根据两球碰撞方向和自身运动方向合成新的增量值
function mc12(mc1:MovieClip, mc2:MovieClip) {
//碰撞角
var ang:Number = Math.atan2(mc2._y-mc1._y, mc2._x-mc1._x);
//运动角
var ang1:Number = Math.atan2(mc1.dy, mc1.dx);
var ang2:Number = Math.atan2(mc2.dy, mc2.dx);
//反射角
var _ang1:Number = 2*ang-ang1-Math.PI;
var _ang2:Number = 2*ang-ang2-Math.PI;
//运动矢量
var r1:Number=Math.sqrt(mc1.dx*mc1.dx+mc1.dy*mc1.dy);
var r2:Number=Math.sqrt(mc2.dx*mc2.dx+mc2.dy*mc2.dy);
//碰撞矢量
var a1:Number = (mc1.dy/Math.sin(ang1))*Math.cos(ang-ang1);
var a2:Number = (mc2.dy/Math.sin(ang2))*Math.cos(ang-ang2);
//碰撞矢量合成
var dx1:Number = a1*Math.cos(ang)+a2*Math.cos(ang);
var dy1:Number = a1*Math.sin(ang)+a2*Math.sin(ang);
//碰撞后的增量
mc1.dx = r1*Math.cos(_ang1)+dx1;
mc1.dy = r1*Math.sin(_ang1)+dy1;
mc2.dx = r2*Math.cos(_ang2)+dx1;
mc2.dy = r2*Math.sin(_ang2)+dy1;
}
//碰撞侦测
function myHitTest(mc1:MovieClip,mc2:MovieClip):Boolean{
var a:Number=Math.sqrt((mc1._x-mc2._x)*(mc1._x-mc2._x)+(mc1._y-mc2._y)*(mc1._y-mc2._y));
if(a-5<=(mc1._width+mc2._width)/2){
return true;
}else{
return false;
}
}
最后附上源文件
http://www2.flash8.net/UploadTeach/200706/20070607173232621.rar
发送短消息
查看公共资料
查找该会员全部帖子
376377610
8221096
称号:好不鱿鱼KOO
头衔:
大有成就
UID:
124788
精华贴:
0
威望值:
0
魅力点:
-1
功勋值:
23
经验数:
1018
积分点:
66
灵动币:
0
状态:
离线
帖子:
334
最后报道:
2008-12-01
2008-07-29 10:32
|
树型
|
收藏
|
小
中
大
2
回复:Flash中的球形碰撞问题
。。。。。。。。。。。。。。。。。。。
看不懂。。。。。。。
。。。。。。。。
8221096 最后编辑于 2008-07-29 11:04:13
发送短消息
查看公共资料
查找该会员全部帖子
772673953
阿平
称号:落
头衔:
灵动总管
UID:
11959
精华贴:
2
威望值:
8
魅力点:
5
功勋值:
9
经验数:
470
积分点:
125
灵动币:
0
状态:
离线
帖子:
561
最后报道:
2008-12-01
2008-07-29 10:36
|
只看楼主
树型
|
收藏
|
小
中
大
3
回复:Flash中的球形碰撞问题
LS上别灌水。
小心扣你分
发送短消息
查看公共资料
查找该会员全部帖子
376377610
倒影传说
头衔:
初来乍道
UID:
176032
精华贴:
0
威望值:
0
魅力点:
-1
功勋值:
0
经验数:
36
积分点:
3
灵动币:
0
状态:
离线
帖子:
16
最后报道:
2008-11-15
2008-07-29 10:47
|
树型
|
收藏
|
小
中
大
4
回复:Flash中的球形碰撞问题
.......原来做个游戏是那么难的哦!
发送短消息
查看公共资料
查找该会员全部帖子
鼓惑仔
称号:︱╰詤唁ゞo_
头衔:
大有成就
UID:
34217
精华贴:
0
威望值:
0
魅力点:
5
功勋值:
1180
经验数:
971
积分点:
50
灵动币:
0
状态:
离线
帖子:
236
最后报道:
2008-11-17
2008-07-29 10:49
|
树型
|
收藏
|
小
中
大
5
回复:Flash中的球形碰撞问题
看不明。。
额```````
发送短消息
查看公共资料
查找该会员全部帖子
ghzLiu@163.com
37266757
52qwe
称号:挂圖高手
头衔:
名声鹊起
UID:
131816
精华贴:
0
威望值:
0
魅力点:
1
功勋值:
279
经验数:
2182
积分点:
118
灵动币:
30
状态:
离线
帖子:
586
最后报道:
2008-12-01
2008-07-29 11:49
|
树型
|
收藏
|
小
中
大
6
回复:Flash中的球形碰撞问题
阿平一开群就活跃了哈!
发送短消息
查看公共资料
查找该会员全部帖子
我
是
灌
水
王
阿平
称号:落
头衔:
灵动总管
UID:
11959
精华贴:
2
威望值:
8
魅力点:
5
功勋值:
9
经验数:
470
积分点:
125
灵动币:
0
状态:
离线
帖子:
561
最后报道:
2008-12-01
2008-07-29 16:06
|
只看楼主
树型
|
收藏
|
小
中
大
7
回复:Flash中的球形碰撞问题
我怎么兴奋了啊 ??
恩?
发送短消息
查看公共资料
查找该会员全部帖子
376377610
wyk391731462
头衔:
初来乍道
UID:
172326
精华贴:
0
威望值:
0
魅力点:
0
功勋值:
0
经验数:
8
积分点:
1
灵动币:
6
状态:
离线
帖子:
3
最后报道:
2008-08-29
2008-08-05 22:19
|
树型
|
收藏
|
小
中
大
8
回复:Flash中的球形碰撞问题
.........这是啥米 0.0
发送短消息
查看公共资料
查找该会员全部帖子
浤炆
头衔:
江湖老手
UID:
120506
精华贴:
0
威望值:
0
魅力点:
3
功勋值:
0
经验数:
48
积分点:
18
灵动币:
0
状态:
离线
帖子:
81
最后报道:
2008-11-30
2008-08-06 20:53
|
树型
|
收藏
|
小
中
大
9
回复:Flash中的球形碰撞问题
这个给我的感觉有点像AS3写得...
浤炆 最后编辑于 2008-08-06 20:59:53
发送短消息
查看公共资料
查找该会员全部帖子
448077395
<<
上一主题
|
下一主题
>>
1
/ 1 页
1
跳转
页
论坛跳转...
灵动官方
【活动公告】
【产品发布】
【新游快报】
近期热门
【云之秘境专区】
【葬魂之诗专区】
【天空之城OL】
【勇者之路专区】
游戏专区
【游戏攻略】
【游戏杂谈】
【游戏搜罗】
【游戏教程】
休闲娱乐
【七嘴八舌】
【影视贴图】
【游戏资源】
经典游戏区
【灵动喷射2专区】
【乖乖猪世界专区】
【灵动嘻哈外传区】
【金庸群侠传】
【圣猫传】
站务管理
【接待大厅】
【高层议事】
【葬魂GM管理】
点这里立即冲值【灵动币】 冲值前请先登陆网站! 目前开通网银,神州行,骏网一卡通冲值
点这里立即冲值【灵动币】 冲值前请先登陆网站! 目前开通网银,神州行,骏网一卡通冲值
点这里立即冲值【灵动币】 冲值前请先登陆网站! 目前开通网银,神州行,骏网一卡通冲值
点这里立即冲值【灵动币】 冲值前请先登陆网站! 目前开通网银,神州行,骏网一卡通冲值
点这里立即冲值【灵动币】 冲值前请先登陆网站! 目前开通网银,神州行,骏网一卡通冲值
点这里立即冲值【灵动币】 冲值前请先登陆网站! 目前开通网银,神州行,骏网一卡通冲值
点这里立即冲值【灵动币】 冲值前请先登陆网站! 目前开通网银,神州行,骏网一卡通冲值
点这里立即冲值【灵动币】 冲值前请先登陆网站! 目前开通网银,神州行,骏网一卡通冲值
点这里立即冲值【灵动币】 冲值前请先登陆网站! 目前开通网银,神州行,骏网一卡通冲值
我的主题
我的帖子
我的精华
帖子标题
空间日志
相册标题
作 者