今天是:
设为首页 加入收藏 网站地图  
正在加截flash,如果长时间无显示,请下载FlashPlayer 9.0
您现在的位置: 呼网互联 >> 技术教程 >> Flash设计 >> Action应用 >> 教程正文 用户登录 新用户注册
球与直线的碰撞检测一         ★★★
球与直线的碰撞检测一
作者: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);
}
}
}

拖动进行测试

教程录入:流云    责任编辑:流云 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    · Win XP设置技巧
    · 注册表全攻略
    · Dreamweaver 8
    · Fireworks 8
    · Flash 8
    · Photoshop CS2
    · Corel Draw
    普通教程[组图]十招学会使用Win
    普通教程[组图]Vista兼容性问题
    普通教程[组图]让低端显卡运行V
    推荐教程[图文]多图激赏:Window
    普通教程[组图]Windows Vista小
    推荐教程[图文]CSS实现星级效果
    普通教程[组图]你知道吗?有关V
    推荐教程[图文]廿五则Windows V
    推荐教程[图文]多图激赏:Window
    推荐教程[图文]CSS实现星级效果
    推荐教程[图文]廿五则Windows V
    推荐教程[图文]CorelDRAW经典教
    推荐教程[图文]蓝色人物绘制教程
    推荐教程[图文]韩式风格教程之油
    推荐教程[图文]AI进阶教程之月亮
    推荐教程XP中可以被禁用的服务对
    没有相关教程

    多图激赏:Windows V

    CSS实现星级效果总结

    廿五则Windows Vist

    可控声音 flash 教程
    (只显示最新10条。评论内容只代表网友观点,与本站立场无关!)