→ cjcat2266:中心點 + factor * (目標物 - 中心點) 12/15 20:55
→ cjcat2266:factor介於0和1之間 12/15 20:55
→ cjcat2266:如果你是要慢慢飄過去,就把以上算式設為X 12/15 20:57
→ cjcat2266:然後 位置 += chaseFactor * (X - 位置) 12/15 20:58
→ cjcat2266:chaseFactor同樣界於0和1之間 12/15 20:58
假如我場景上面有一個物件叫做box_mc
然後場景尺寸是640X400
//中心點
var centerX:Number = 320;
var centerY:Number = 200;
//部分偏移程度,越靠近1表示最終位置越接近滑鼠位置
var posFactor:Number = 0.5;
//逼近速度,越靠近1表示逼近速度越快,1表示瞬間移動至定點
var chaseFactor:Number = 0.2;
//持續呼叫的主迴圈
addEventListener(Event.ENTER_FRAME, loop);
function loop(e:Event):void {
//計算目標座標
var targetX:Number = centerX + posFactor * (mouseX - centerX);
var targetY:Number = centerY + posFactor * (mouseY - centerY);
//使用chaseFactor去慢慢逼近
box_mc.x += chaseFactor * (targetX - box_mc.x);
box_mc.y += chaseFactor * (targetY - box_mc.y);
}
以上code寫法為方便理解原理
真正要增進效能與節省記憶體的話可以自行簡化
--
CJ Cat = Croa'J Cat = Cockroach Cat = 西街凱特 = 蜚蠊貓 = 蟑螂貓
Blog http://cjcat.blogspot.com
Gallery http://cjcat2266.deviantart.com
ptt2 Board CJWorkshop - 阿多比閃光(Adobe Flash)研討區
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.88.104
推 cheerme:非常謝謝你!! 12/15 22:14
推 cheerme:但在第12行 出現錯誤顯示無法載入類別'Event'是為什麼呢 12/15 22:17
→ cjcat2266:看來你是用AS2,那我等等回文 12/15 22:21