نمایش نتایج 1 تا 13 از 13

نام تاپیک: استفاده از كليدها در طراحي بازي

  1. #1

    استفاده از كليدها در طراحي بازي

    چگونه بايد در برنامه نويسي c از كليد هاي بالا و پايين براي طراحي بازي استفاده كنيم؟

  2. #2
    کاربر جدید آواتار mehdi21
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    تهران
    سن
    40
    پست
    19

    نقل قول: استفاده از كليدها در طراحي بازي

    سوال شما خیلی خیلی کلی هست .
    اگه منظورتون arrow key های بالا و پایین باشه ، می تونید با چند روش این کارو بکنید .
    از ماکروهای ویندوز استفاده کنید که خوب کمی کندن و یا از DirectInput که داخل DirectX هست استفاده کنید ویا هر api دیگه ای مثل OIS و غیره .
    کد زیر ماکرو ویندوز هست و به راحتی همه جا می تونید ازش استفاده کنید . فقط مراقب باشید که سرعتش خیلی زیاد نیست .

    این ماکرو ها رو بالای کدتون وارد کنید
    #define KEYDOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)
    #define KEYUP(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 0 : 1)
    بعد تو حلقه بازی با کمک این ماکرو ها می تونید چک کنید که آیا اون دگمه ها زده شده یا نه

    if (KEYUP(VK_ESCAPE)) { // exit }
    if (KEYDOWN(VK_SPACE)) { }

    چهار کلید جهتی دار رو می تونید با اینا چک کنید

    VK_LEFT
    VK_UP
    VK_RIGHT
    VK_DOWN


  3. #3

    نقل قول: استفاده از كليدها در طراحي بازي

    سوال شما خیلی خیلی کلی هست .
    اگه منظورتون arrow key های بالا و پایین باشه ، می تونید با چند روش این کارو بکنید .
    از ماکروهای ویندوز استفاده کنید که خوب کمی کندن و یا از DirectInput که داخل DirectX هست استفاده کنید ویا هر api دیگه ای مثل OIS و غیره .
    کد زیر ماکرو ویندوز هست و به راحتی همه جا می تونید ازش استفاده کنید . فقط مراقب باشید که سرعتش خیلی زیاد نیست .
    من فکر کنم چ.ن این توابع از دستورهای ویندوز استفاده میکنن خیلی سریع باشن چون بالاخره همون کتابخونه ها هم از همین توابع استفاده میکنن

  4. #4
    کاربر دائمی آواتار 1485159
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    NULL
    سن
    30
    پست
    886

    نقل قول: استفاده از كليدها در طراحي بازي

    من فکر کنم چ.ن این توابع از دستورهای ویندوز استفاده میکنن خیلی سریع باشن چون بالاخره همون کتابخونه ها هم از همین توابع استفاده میکنن
    یعنی استفاده از api خود ویندوز بهتره؟

  5. #5

    نقل قول: استفاده از كليدها در طراحي بازي

    بله. هر قدر بتونین به سیستم عامل نزدیک بشین انعطافتون بیشتر میشه. البته به همون اندازه هم باید مراقب باشین چون امکان باگ بیشتر میشه

  6. #6
    کاربر جدید آواتار mehdi21
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    تهران
    سن
    40
    پست
    19

    نقل قول: استفاده از كليدها در طراحي بازي

    نه پویا جان
    direct input چون از خود سخت افزار استفاده می کنه یعنی شما دیواس ماوس یا کی برد رو که می سازی دقیقاً ارتباط مستقیم با سخت افزار داری و به همین خاطر خیلی خیلی سریعتره .
    می تونی تست کنی .
    OIS هم به نظر خوب میاد ولی من هنوز باهاش کار نکردم فقط کدهاشو دیدم .
    برنامه نویس ها از ماکروها و توابع ویندوز استفاده می کنند تا سریعتر تست کنند کدهاشونو . اگه دقت کرده باشی موتورهای کاربردی یه فکر اساسی برای این موضوع می کنند نه اینکه بیان و به راحتی با چند تا ماکرو این کارو انجام بدن . و یا یه کلاس بنویسن و توابعشو به این ماکرو ها پاس بدن ! این کار زیاد منطقی به نظر نمیاد .
    البته تو بعضی شرایط کار با توابع ویندوز خیلی بهتره . مثلا وقتی داریم با فایل ها کار می کنیم ، سریعترین توابع و کلاسها برای ویندوز هستند . اگه به طور مثال از iostream استفاده کنید خواهید دید که چقدر با معادل ویندوزش تفاوت سرعت داره . و برای ویندوز 7 هم شدیداً پیشنهاد می کنم از توابع ویندوز استفاده بشه . iostream سطح امنیت لازم رو نداره و ویندوز اجازه کار با فایل رو همجا بهش نمی ده .

  7. #7

    نقل قول: استفاده از كليدها در طراحي بازي

    نمی دونستم دایرکت input با درایورها مستقیما درگیر میشه.

  8. #8
    کاربر جدید آواتار mehdi21
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    تهران
    سن
    40
    پست
    19

    نقل قول: استفاده از كليدها در طراحي بازي

    من OIS رو هم بررسی کردم . اون از ترکیب توابع و ماکر.های ویندوز بعلاوه DirectInput استفاده می کنه .
    در شرایطی که مثلا از حالا پنجره ای استفاده می کنید برای ماوس میاد و از clienttoScreen
    و غیره برای بدست آوردن مختصات ماوس استفاده می کنه . به نظر خوب میاد ولی خیلی کداش زیاده و روی پلت فرم های مختلف هم کار می کنه .
    و در شرایط فول اسکرین حالت Exclusive و دسترسی کامل مستقیماً با DirectInout و سخت افزار کار می کنه
    ولی من ترجیح می دم از کلاس خودم که برای DirectInout نوشتم استفاده کنم . چون حداقل ساختارش هم خیلی ساده است و هم فقط از DirectInput استفاده می کنه نه ویندوز . و این سرعت رو تظمین می کنه .

  9. #9

    نقل قول: استفاده از كليدها در طراحي بازي

    mehdi21:

    خوبه. فقط آیا راهی هستش که ثل دایرکت بشه api ویندوز رو دور زدش؟!

  10. #10
    کاربر جدید آواتار mehdi21
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    تهران
    سن
    40
    پست
    19

    نقل قول: استفاده از كليدها در طراحي بازي

    پویا منظورتو متوجه نمی شم . یه مثال بزن .

  11. #11
    کاربر دائمی آواتار 1485159
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    NULL
    سن
    30
    پست
    886

    نقل قول: استفاده از كليدها در طراحي بازي

    پویا منظورتو متوجه نمی شم . یه مثال بزن .
    فکر کنم منظورش این باشه که به طور مستقیم با کیبورد یا موس کار کنه.

  12. #12

    نقل قول: استفاده از كليدها در طراحي بازي

    فکر کنم منظورش این باشه که به طور مستقیم با کیبورد یا موس کار کنه.
    سلام
    دقیقا همین منظور رو دارم یعنی میشه مثل دایرکت عمل کردش؟

  13. #13
    کاربر جدید آواتار mehdi21
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    تهران
    سن
    40
    پست
    19

    نقل قول: استفاده از كليدها در طراحي بازي

    بله همین طور که گفتید .

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •