drag حول یک محور دایره ای

شروع موضوع توسط Amir02111 ‏15 مارس 2013 در انجمن Action Script 3

  1. Amir02111

    Amir02111 Member

    ارسال‌ها:
    63
    تشکر شده:
    43
    امتیاز دستاورد:
    6
    با سلام خدمت دوستان عزیز

    من یه mc دارم که می خوام وقی درگ شد بیشتر از یه محور دایره ای نره
    من برای این کار از Rectangle استفاده می کنم ولی Rectangle ها مستطیل هستند و من می خوام که دایره باشه

    دوستان اگه راهی چاهی یا چیز دیگه ای داره ممنون می شم بهم بگید...
     
    نوشته شده توسط Amir02111 در ‏15 مارس 2013
    ultra1383 از این پست تشکر کرده است.
  2. JavidFlasher

    JavidFlasher کاربر فعال

    ارسال‌ها:
    901
    تشکر شده:
    792
    امتیاز دستاورد:
    93
    سلام
    یه موی کلیپ بساز که توش یه shape دایره باشه بعد از توی اون چیزی رو که میخوای براش دستور drag تعریف کن
    یعنی این که اول چک بشه که موس روی دایرهه هست بعد چیزی رو که میخوای درگ بشه
    شاید startDrag خوب جواب نده خودت دستی باید بنویسی
     
    نوشته شده توسط JavidFlasher در ‏15 مارس 2013
    Amir02111 و ultra1383 از این پست تشکر کرده اند.
  3. ultra1383

    ultra1383 Active Member

    ارسال‌ها:
    121
    تشکر شده:
    26
    امتیاز دستاورد:
    28
    [CSS]var sun:Sprite = new Sprite();sun.graphics.lineStyle(0,0xFF6600);
    sun.graphics.beginFill(0xFF3300);
    sun.graphics.drawCircle(0,0,40);
    sun.graphics.endFill();


    var earth:Sprite = new Sprite();
    earth.graphics.lineStyle(0,0x92E9FE);
    earth.graphics.beginFill(0x00CCFF);
    earth.graphics.drawCircle(0,0,20);
    earth.graphics.endFill();


    var spot:Shape = new Shape();
    spot.graphics.lineStyle(0,0x000000);
    spot.graphics.beginFill(0x333333);
    spot.graphics.drawCircle(0,0,4);
    spot.graphics.endFill();






    var moon:Shape = new Shape();
    moon.graphics.lineStyle(0,0xFFFFCC);
    moon.graphics.beginFill(0xFFFF00);
    moon.graphics.moveTo(-5,-5);
    moon.graphics.lineTo(5,-5);
    moon.graphics.lineTo(5,5);
    moon.graphics.lineTo(-5,5);
    moon.graphics.lineTo(-5,-5);
    moon.graphics.endFill();






    this.addChild(sun);
    sun.x = 200;
    sun.y = 200;




    sun.addChild(spot);
    spot.x = 20;
    spot.y = 10;


    sun.addChild(earth);
    earth.x = 120;
    earth.y = 0;






    earth.addChild(moon);
    moon.x = 50;
    moon.y = 0;






    stage.addEventListener(Event.ENTER_FRAME, orbit);


    function orbit(evt:Event):void {

    sun.rotation++;

    earth.rotation+= 3;

    moon.rotation-=5;

    }[/CSS]




    فقط یه کم تغییر می خواد که باید انجام بدی.

    موفق باشی .
     
    نوشته شده توسط ultra1383 در ‏16 مارس 2013
    ++Hadi++ و Amir02111 از این پست تشکر کرده اند.
  4. Amir02111

    Amir02111 Member

    ارسال‌ها:
    63
    تشکر شده:
    43
    امتیاز دستاورد:
    6
    خیلی ممنون دوست عزیز ازجوتبتون ولی این کار یه مشکل داره اونم اینکه اگه موس از دایره بیرون بره درگ از کار می افته در صورتی که نباید این طوری بشه و اگه موس بیرون دایره هم رفت درگ کار کنه فقط شی از دایره بیرون نیاد...
     
    آخرین ویرایش: ‏16 مارس 2013
    نوشته شده توسط Amir02111 در ‏16 مارس 2013
  5. Amir02111

    Amir02111 Member

    ارسال‌ها:
    63
    تشکر شده:
    43
    امتیاز دستاورد:
    6
    با تشکر از شما فقط یه سوال این کاری که شما کردی تغییر rotation هستش و چطوری می تونییم اونو به startDrag ربط بدیم
     
    نوشته شده توسط Amir02111 در ‏16 مارس 2013
  6. ultra1383

    ultra1383 Active Member

    ارسال‌ها:
    121
    تشکر شده:
    26
    امتیاز دستاورد:
    28
    یه کم خلاقیت می خواهد .

    یه کم بیشتر تلاش کن من هم تا جایی که بتونم راهنماییتون می کنم .

    موفق باشید .
     
    نوشته شده توسط ultra1383 در ‏16 مارس 2013
    Amir02111 از این پست تشکر کرده است.
  7. JavidFlasher

    JavidFlasher کاربر فعال

    ارسال‌ها:
    901
    تشکر شده:
    792
    امتیاز دستاورد:
    93
    سلام
    برا این که وقتی موس بیرون از دایره رفت ابجکتی که درگ میشه روی مرز دایره حرکت کنه
    باید از طریق فیثاغورس a و b رو درست کنی که فاصله موست تا مرکز دایره هست.یکی عمودی یکی افقی. اما به جای c شعاع دایره رو میزاری.
    حالا اگه این c رو تجزیه کنی و x و y ش رو در بیاری بعد + مختصات x ,y دایرت کنی میشه مختصات جدید ابجکتی که درگ میشه
     
    آخرین ویرایش: ‏16 مارس 2013
    نوشته شده توسط JavidFlasher در ‏16 مارس 2013
    Amir02111 از این پست تشکر کرده است.
  8. ++Hadi++

    ++Hadi++ Active Member

    ارسال‌ها:
    3,529
    تشکر شده:
    5,802
    امتیاز دستاورد:
    36
    برای این کار شما باید از روابط مثلثاتی استفاده کنید.یعنی sin و cos ..البته اگه منظورتون ،درگ رو حول محور دایره ای باشه ...فک کنم چیزی شبیه به دسته کنترل صدای جت آدیو رو می خواهید درسته...
     
    نوشته شده توسط ++Hadi++ در ‏16 مارس 2013
    Amir02111 از این پست تشکر کرده است.
  9. Amir02111

    Amir02111 Member

    ارسال‌ها:
    63
    تشکر شده:
    43
    امتیاز دستاورد:
    6
    من دسته کنترل صدای جت آدیو رو تا حالا ندیدم در واقع یکی دو ماه دارم بازی سازی برا اندروید رو کار میکنم و این کارو برا کنترل بازی کن در گوشه ی سمت چپ می خواستم...
    Untitled-1.jpg
     
    آخرین ویرایش: ‏17 مارس 2013
    نوشته شده توسط Amir02111 در ‏17 مارس 2013
  10. ++Hadi++

    ++Hadi++ Active Member

    ارسال‌ها:
    3,529
    تشکر شده:
    5,802
    امتیاز دستاورد:
    36
    آها انشاءالله یه آموزش در این رابطه می زارم...یکی دو روز دیگه ...انشاءال...
     
    نوشته شده توسط ++Hadi++ در ‏17 مارس 2013
    amirhossein.h، mohammad.sub7، JavidFlasher و یک نفر دیگر از این ارسال تشکر کرده اند.
  11. JavidFlasher

    JavidFlasher کاربر فعال

    ارسال‌ها:
    901
    تشکر شده:
    792
    امتیاز دستاورد:
    93
    نوشته شده توسط JavidFlasher در ‏17 مارس 2013
    Amir02111، ++Hadi++ و benyamin_pc از این ارسال تشکر کرده اند.
  12. ++Hadi++

    ++Hadi++ Active Member

    ارسال‌ها:
    3,529
    تشکر شده:
    5,802
    امتیاز دستاورد:
    36
    با یه سری توضیحات فارسی در اسکریپت برنامه نویسی ، آموزشم رو دادم..یه کم باش ور برید دستتون می یاد....
    ایده اینو از رو دسته کنترل صدای jet audio البته نسخه های قدیمیش برداشتم...
     

    پیوست ها:

    نوشته شده توسط ++Hadi++ در ‏21 مارس 2013
    Amir02111 و JavidFlasher از این پست تشکر کرده اند.

به اشتراک بگذارید