主题:  怎么做物体碰撞然后弹开的效果?比如台球.?

Fierce

职务:普通成员
等级:2
金币:10.0
发贴:468
#12001/9/30 15:49:54
最好详细讲解一下
谢谢



hacker hacking

职务:普通成员
等级:4
金币:10.0
发贴:1629
#22001/9/30 23:13:54
对不起
我是新手
难道这种效果个人可以做吗?
为什么不找现成的



激动的眼泪水

职务:普通成员
等级:1
金币:0.0
发贴:44
#32001/10/1 0:00:48
去FLASHKIT。COM有源文件、



Fierce

职务:普通成员
等级:2
金币:10.0
发贴:468
#42001/10/1 0:33:20
flashkit所有的script我都有
但是没看到过这个
谁有源码提供一下?



Demon.S

职务:版主
等级:5
金币:10.0
发贴:2468
#52001/10/1 12:35:54
mc._x/yscale=-(mc._x/yscale);



Fierce

职务:普通成员
等级:2
金币:10.0
发贴:468
#62001/10/1 14:34:03
用hittest检测?
但是hittest检测的mc好像热区好像只能检测方形的mc啊...



激动的眼泪水

职务:普通成员
等级:1
金币:0.0
发贴:44
#72001/10/1 16:01:45
主要是用半径来检测, 不用hittest

my_radius=(this._width)/2
my_x=this._x
my_y=this._y
my_n=this._name
if(ymov=""){
ymov=Radom(_root.speed)+1
xmov=Random(_root.speed)+1
ysign=random(2)-1
if(ysign=0){
ysign=1
}
xsign=random(2)-1
if(xsign=0){
xsign=1
}
xmov=xmov*xsign
ymov=ymov*ysign
}

if(my_x<=(my_radius+_root.speed)){
xmov=-xmov
my_x=my_radius+_root.speed
}
if(my_y<=my_radius+_root.speed){
ymov=-ymov
my_y=my_radius+_root.speed
}
if(my_x>=550-my_radius-_root.speed){
xmov=-xmov
my_x=550-my_radius-_root.speed}
if(my_y>=400-my_radius-_root.speed){
xmov=-xmov
my_y=400-my_radius-_root.speed}
n=1

loop while(n<=_root.total_circles){

if(n!=my_n){
n_x=_parent.n._x
n_y=_parent.n._y
n_radius=(_parent.n._width)/2
delta_x=my_x+xmov-(n_x)
delta_y=my_y+ymov-(n_y)
if(Math.pow(Math.abs(delta_x),2)+Math.pow(Math.abs(delta_y),2)<=2*Math.pow(Math.abs(my_radius+n_radius))){
nx=Eval(_parent.n.xmov)
ny=Eval(_parent.n.ymov)
tempx=xmov
xmov=nx
_parent.n.xmov=tempx
tempy=ymov
ymov=ny
_parent.n.ymov=tempy
_parent.n.collison=my_n}
}
n=n+1
}
this._x=my_x+xmov
this._y=my_y+ymov

编辑历史:[这消息被激动的眼泪水编辑过(编辑时间2001-10-01 16:04:17)]


Fierce

职务:普通成员
等级:2
金币:10.0
发贴:468
#82001/10/1 16:20:16

这么多.....
把源码给我吧?



激动的眼泪水

职务:普通成员
等级:1
金币:0.0
发贴:44
#92001/10/1 23:22:33
tell me qq



Fierce

职务:普通成员
等级:2
金币:10.0
发贴:468
#102001/10/2 15:16:16
6577192
可以发我信箱
fierce@fm365.com



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#112001/10/3 16:43:53
碰撞检测不难,我认为主要是法线和动量计算上比较麻烦



激动的眼泪水

职务:普通成员
等级:1
金币:0.0
发贴:44
#122001/10/3 17:48:30
圆与圆之间的碰撞, 速度的改变都是都是沿着法线方向的, 所以, 只要将建速度改变符号即可

tutorial 见http://www.flashkit.com/tutorials/Actionscripting/Expert/Circle_C-Flash_Ju-74/index.shtml

还是4版的, 但很有用, 这里有一个bug,当圆到角上时就会停住,所以,还要修改一下

编辑历史:[这消息被激动的眼泪水编辑过(编辑时间2001-10-03 17:55:06)]


bigflyman

职务:普通成员
等级:1
金币:0.0
发贴:87
#132001/10/6 13:11:28
现在用flash5.0很容易做到