Flash游戲中導(dǎo)彈追蹤的算法_Flash教程
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!
推薦:有關(guān)Flash AS3編程的一些總結(jié)最近用AS3寫(xiě)一些項(xiàng)目,在編程過(guò)程中,碰到不少問(wèn)題,同時(shí)也有一些收獲和心得�,F(xiàn)在貼出來(lái)希望對(duì)大家在AS3編程有一些幫助。假如你發(fā)現(xiàn)有說(shuō)得不對(duì)的地方,你可以
先看下效果吧:
代碼如下:
請(qǐng)教大家一個(gè)關(guān)于勢(shì)函數(shù)用到追蹤和攔截的算法
有研究過(guò)的能不能指點(diǎn)一下!
Powered By Sunday
Email:[email protected]
*/
var stepAngle:Number = 3;
//角度最大增量
var tempNum:Number = 0;
var radius:Number = 100;
//導(dǎo)彈飛行半徑
var M_speed:Number = 3;
//導(dǎo)彈速度(非常量)
var P_speed:Number = 5;
//飛機(jī)速度
findToHit(missile, target);
function findToHit(missile, target) {
missile.onEnterFrame = function() {
_root.AngText = stepAngle;
if (missile.hitTest(target.hit)) {
target.play();
missile._visible = false;
delete missile.onEnterFrame;
}
//---------------擊中目標(biāo)
tempNum ;
if (tempNum == 15) {
if (stepAngle == 2) {
if (Math.abs(target._x-missile._x)>radius*2 || Math.abs(target._y-missile._y)>radius*2) {
stepAngle = 3;
}
} else if ((Math.abs(target._x-missile._x)<30 || Math.abs(target._y-missile._y)<30)) {
stepAngle = 2;
}
tempNum = 0;
}
//---------------------改變角度增量-------------------------
P = new Object();
P.x = missile.way._x;
P.y = missile.way._y;
missile.localToGlobal(P);
dx = P.x-missile._x;
dy = P.y-missile._y;
dx1 = target._x-P.x;
dy1 = target._y-P.y;
//----------------------取得向量--------------------------
angle = Math.atan2(dy1, dx1)*180/Math.PI;
//-----------------------取得角度------------------------
angle = angle<=0 ? Math.abs(360 angle) : angle;
M_angle = missile._rotation<0 ? 360 missile._rotation : missile._rotation;
if (Math.abs(M_angle-angle)>stepAngle) {
if (angle-M_angle>180) {
M_angle = -stepAngle;
} else {
M_angle = angle<M_angle && (M_angle-angle<180) ? -stepAngle : stepAngle;
}
missile._rotation = M_angle;
}
//---------------------改變導(dǎo)彈角度-----------------------
missile._x = dx*M_speed/10;
missile._y = dy*M_speed/10;
//-----------------------導(dǎo)彈移動(dòng)---------------------
};
}
//-----------------------------追蹤---------------------
listen = new Object();
listen.onKeyDown = function() {
onEnterFrame = function () {
if (Key.isDown(Key.RIGHT)) {
target._x = P_speed;
} else if (Key.isDown(Key.LEFT)) {
target._x -= P_speed;
} else if (Key.isDown(Key.UP)) {
target._y -= P_speed;
} else if (Key.isDown(Key.DOWN)) {
target._y = P_speed;
}
};
};
Key.addListener(listen);
//----------------------------鍵盤(pán)控制--------------------------
分享:用Flex3.0 做一個(gè)簡(jiǎn)單Flv 播放器今天早上,以前高中同學(xué)要我教他用Flex寫(xiě)一個(gè)flv播放器.網(wǎng)上應(yīng)該也有不少的教程了,但中午吃完飯后,覺(jué)得自己寫(xiě)寫(xiě)也不錯(cuò),究竟自己很少在自己博客上寫(xiě)教程,
/所屬分類:Flash教程/更新時(shí)間:2008-03-05
相關(guān)Flash教程:
- as中禁用ESC鍵
- AS3.0 圖片變黑白 圖片彩色變黑白代碼
- flash as3.0 跨域的解決辦法
- 模板無(wú)憂FLASH透明代碼
- Flash教你制作卡通MM眨眼睛動(dòng)畫(huà)
- Flash從零開(kāi)始學(xué)習(xí)創(chuàng)建單選按鈕
- Flash繪制小龍與花插畫(huà)場(chǎng)景
- Flash程序的測(cè)試方法
- Flash CS4文字顏色緩動(dòng)特效
- 網(wǎng)頁(yè)中演示類FLASH動(dòng)畫(huà)制作規(guī)范
- Flash CS3循環(huán)背景的運(yùn)用技巧
- Flash鼠繪技巧教你制作紅綠色的樹(shù)葉
Flash教程Rss訂閱網(wǎng)站制作教程搜索
Flash教程推薦
- Flash MX2004入門(mén)與進(jìn)階實(shí)例——聲音和視頻(10)
- Flash MX 2004新特性實(shí)例(5)
- Flash AS3中數(shù)據(jù)發(fā)送與接收
- Flash MX2004入門(mén)與進(jìn)階實(shí)例——聲音和視頻(7)
- 入門(mén):利用Flash畫(huà)圖功能打造齒輪動(dòng)畫(huà)特效
- 代碼詳解attachMovie有區(qū)別的加載
- Flash CS4教程:3D旋轉(zhuǎn)和3D位移
- Flash 動(dòng)作腳本之:資料速查(3)
- Flash教程:flash8 繪制至尊土豆(1)
- Action Script 2.0新手調(diào)試
猜你也喜歡看這些
- 相關(guān)鏈接:
- 教程說(shuō)明:
Flash教程-Flash游戲中導(dǎo)彈追蹤的算法
。