13-01-2006, 15:19
|
|
|
חבר מתאריך: 03.09.05
הודעות: 2,857
|
|
טוב, אני רואה שהסתבכתם כאן אז...
תראה, מה שאתה צריך לעשות זה למצוא את הזווית של העכבר. כדי לעשות זאת תשמש בפונקציה atan2. הפונקציה מקבלת שני פרמטרים, הצלע שליד הזווית והצלע שמול הזווית ומחזירה רדיאן, בוא נעזוב כרגע מה היא עושה, למרות שזה די פשוט, אבל זה ל אמור לעניין אותך במקרה הזה .
בכל מקרה, לאחר שמצאת את הזווית אתה צריך לקדם את הX של המוביקליפ שלך בקוסינוס שלה ואת הY בסינוס. כמובן שהמוביקליפ ינוע לאט מאוד ולכן יש ליצור משתנה speed ולהכפיל אותו בהם.
קוד:
var nSpeed:Number = 5;
var oMouseListener:Object = new Object();
oMouseListener.onMouseDown = function()
{
var nDistanceX:Number = _root._xmouse-mc._x;
var nDistanceY:Number = _root._ymouse-mc._y;
var nRadian:Number = Math.atan2(nDistanceY, nDistanceX);
mc.onEnterFrame=function(){
this._x+=Math.cos(nRadian)*nSpeed;
this._y+=Math.sin(nRadian)*nSpeed;
}
}
Mouse.addListener(oMouseListener);
כדי לך למחוק בשלב כלשהוא (למשל כשהמוביקליפ עוזב את הבמה) את ה enterframe כדי לא לצרוך משאבים מיותרים, במיוחד אם יהיו כל הזמן עוד ועוד יריות.
_____________________________________
|