| 球与直线的碰撞检测一 |
作者:zjs35 文章来源:zjs35s blog 点击数:
更新时间:2005-12-01 16:53:50 |
|
| |
|
原理很简单,用点到直线的距离进行判断,没加回帧,所以如果加上碰撞反应,会有问题
code:
|
import fc.math.Degree; class Wall { private var _wall:MovieClip; private var _cenx:Number; private var _ceny:Number; private var _k:Number; private var a1:Number; private var b1:Number; private var c1:Number; public function Wall(w) { _wall = w; init(); } public function get target():MovieClip { return _wall; } private function init():Void { _cenx = _wall._x; _ceny = _wall._y; _k = Degree.tanD(_wall._rotation); a1 = -_k; b1 = 1; c1 = _k*_cenx-_ceny; } public function checkCollision(mc):Boolean { var x0 = mc._x; var y0 = mc._y; var r = mc._width/2; var t1 = a1*x0+b1*y0+c1; var t2 = a1*a1+b1*b1; return t1*t1/t2 } } //test import Wall; var t1 = [new Wall(line1), new Wall(line2), new Wall(line3), new Wall(line4)]; setInterval(test, 30); function test() { for (var i in t1) { var t = t1[i].checkCollision(mc); if (t) { t1[i].target.gotoAndStop(2); } else { t1[i].target.gotoAndStop(1); } } } |
拖动进行测试
|
| 教程录入:流云 责任编辑:流云
|
|
上一篇教程: 纯AS的Loading效果四例
下一篇教程: Flash动态解析Web应用程序服务器路径 |
| 【字体:小
大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】
|