جهت گيري يه شي به سمت موس

mosi20

Active Member
سلام
ميخواستم اگه ميشه به من ياد بدين چجوري ميشه يه دايره مثله چشم يه جا ثابت بمونه و ما هر جاي فلش كه موس رو ببريم به موس نگاه كنه
اگه ميشه زود بهم جواب بدين آخه كارم بهش گير
 

naeim_crack

Active Member
سلام
ببين اين خيلي آسونه فقط بايد يه مقدار رياضي شما قوي باشه . بايد x,y اون شي رو با xmouse,ymouse جوري تنظيم كني كه جهت مورد نظر رو بدست بياري

موفق باشي
 

behzaad

Member
سلام

منم اين سوال رو كرده بودم و بچه ها محبت كردن و اين سورس رو دادن
 

mosi20

Active Member
اينكه فايل فلشه
اگه ميشه يه فايل سويش به من بدين آخه جدا كارم بهش گير
آقا نعيم ميشه كد يه مثال آمادشو اينجا بنويسيد؟
خواهشا
 

naeim_crack

Active Member
سلام

سلام
اينم آموزش ساخت چشم هايي كه موس رو نگاه مي كنن :wink:

اصول كلي اين كار بر حسب محاسبه موقعيت اشاره گر موس و چشم است كه بايد زاويه چشم و اشارگر موس رو بر حسب توابع مثلثاتي بدست بياوريم .

ابتدا يك shape به شكل چشم بسازيد .
1)-در ايتدا بايد مختصات x,y اين چشم رو داشته باشم كه با فرمول زير بدست مي آوريم .
کد:
 X = this._x;
    Y = this._y;
2)- بايد مختصات x,y موس را داشته باشم
کد:
 Xm = _root._xmouse;
    Ym = _root._ymouse;
3)- حالا بايد براي محاسبه فواصل بين اين دو از رابطه زير استفاده كنيم
کد:
 Xdiff = Xm - X;
    Ydiff = -(Ym - Y);
4)- حالا بايد زاويه مقابل اشاره گر موس رو پيدا كنيم
کد:
 radAngle = Math.atan(Ydiff / Xdiff);
البته اين زاويه بدست آمده بر حسب راديان مي باشد كه در قسمت بعدي به درجه تبديل مي شود.
اين شرط رو هم بايد اعمال كنيم كه موس در قمت راست و چپ هم مشگل نداشته باشه
کد:
 if (Xdiff < 0)
    {
        corrFactor = -270;
    }
    else
    {
        corrFactor = -90;
    } // end if
اما قسمت آخر كه هم راديان رو به درجه تبديل مي كنيم و هم مختصات چشم رو اعمال مي كنيم
کد:
  this._rotation = -radAngle * 360 / 6.283185 + corrFactor;

البته اين اصول كار بود ممكنه خطا هايي هم داشته باشه ولي ميشه با يكمي تغيير روي اصل فايل اين مشكلات رو حل كرد
اينم كل كد :
کد:
onEnterFrame() {
    X = this._x;
    Y = this._y;
    Xm = _root._xmouse;
    Ym = _root._ymouse;
    Xdiff = Xm - X;
    Ydiff = -(Ym - Y);
    radAngle = Math.atan(Ydiff / Xdiff);
    if (Xdiff < 0)
    {
        corrFactor = -270;
    }
    else
    {
        corrFactor = -90;
    } // end if
    this._rotation = -radAngle * 360 / 6.283185 + corrFactor;
}

اميدوارم مشكلت حل بشه
موفق باشي
 

جدیدترین ارسال ها

بالا