ارسالها: 1,091
موضوعها: 122
تاریخ عضویت: دي 1393
مکان: همدان-ملایر
سپاسها: 236
1923 سپاس گرفتهشده در 1126 ارسال
شما می توانید بجای ساخت این شکل پیچیده ، شکل را به قسمت های کوچکتری تقسیم کرده و در یک اسپرایت بصورت انیمشن وارد کنید. مثلا دیوار ها را تکه تکه ذخیره کنید زنجیر را جدا تار ها را جدا در یک فریم یا یک انیمشن وارد کنید.
ونقشه تان را براساس این اسپرایت ها بسازید. و این عکس را در کانسراکت با مولف های کوچک شده بسازید.
اگر عکس ها را درست تقسیم بندی و برش دهید نتیجه یکسان می شود .
ارسالها: 1,385
موضوعها: 79
تاریخ عضویت: آذر 1393
سپاسها: 1831
2418 سپاس گرفتهشده در 980 ارسال
تشکر،
این روشی که گفتین خودش یک نظری هست که معمولا خیلی ها همین روش رو میرن. ولی خب، با اینکار، علاوه بر افزایش تعداد اسپرایت ها، درنتیجه تعداد نقاط برخورد هم زیاد میشن.
من میخوام بدونم آیا این روش منطقی تره یا روش تکه کردن و استفاده از چند اسپرایت؟! و البته برای بازی ها روی موبایل، مسلما سرعت مهمه و میخوام ببینم کدوم یکی تاثیر بهتری داره.
ارسالها: 1,091
موضوعها: 122
تاریخ عضویت: دي 1393
مکان: همدان-ملایر
سپاسها: 236
1923 سپاس گرفتهشده در 1126 ارسال
درست است این روش تعداد نقاط را افزایش میدهد . هر چه قالب شکل برخورد به مربع و مستطیل نزدیک شود سرعت کشف برخورد بالا می رود . و هر چه شکل و تعداد نقاط زیاد می شود بشدت افت فریم دارید. یعنی اشیای پیچیده خیلی سنگین تر از چند شی ساده است
یک روش دیگر تقریبی وجود دارد بجای اینکه برخورد با شکل بالا صورت گیرد با یک شی مخفی ساده مثل مستطیل صورت گیرد که تقریبا عکس بالا را پوشش دهد.
شما بایستی در مورد برخورد اطلاع داشته باشیم . من در این زمینه برای افزایش سرعت مقاله ای در این سایت نوشتم .
خلاصه اش این است . که برخورد یک رابطه دو طرفه است . یعنی فرق ندارد کدام شی برخورد را کشف کند. پس برای افزایش به نکته های زیر توجه کن و رویداد برخورد را برای اشیای زیر فعال کن و از اکشن ها و رویداد شی زیر رویداد را فراخوانی کن و بقیه را غیر فعال کن
1- تعداد اشیای صحنه را ضبدر اندازه شی کن هر کدام کمتر بود برای آن فعال کن
2- اشیای زنده اشیای که حرکت می کنند برخورد روی می دهد پس برای اشیای فعال رویداد را فعال کن
3-برای اشیای گرافیکی بی ارزش که در لایه های دیگر هستند وتاثیری ندارند رویداد برخورد را غیر فعال کن(مثال سیستم ذرات دود یا پس زمینه)
ارسالها: 1,091
موضوعها: 122
تاریخ عضویت: دي 1393
مکان: همدان-ملایر
سپاسها: 236
1923 سپاس گرفتهشده در 1126 ارسال
می توانید برای یک مرحله تست کنی یک دفع مرحله را با روش اول و یک بار با روش دوم دیباگ کنید سپس در قسمت کارایی performance نگاه کن و با هم مقایسه کن مخصوصا fps / est.cpu کن و همین طور تیک برخورد collision check هر چه عدد کوچکتر کارایی بیشتر.
ارسالها: 469
موضوعها: 21
تاریخ عضویت: بهم 1393
مکان: اصفهان
سپاسها: 791
692 سپاس گرفتهشده در 322 ارسال
سلام
تو بازی فیزیکدار تعداد اشیا بیشتر از نقاط پرفرمنسو پایین میاره حتی اشیای کوچک هم تقریبا به اندازه آبجکتهای بزرگ تاثیر میزارند.
ارسالها: 786
موضوعها: 121
تاریخ عضویت: مرد 1393
مکان: قـــــم
سپاسها: 321
1532 سپاس گرفتهشده در 537 ارسال
الان قراره اگر پلیر به نقاط بر خورد کم به طور مثال خونش کم بشه؟؟
ارسالها: 1,091
موضوعها: 122
تاریخ عضویت: دي 1393
مکان: همدان-ملایر
سپاسها: 236
1923 سپاس گرفتهشده در 1126 ارسال
برخورد جز فیزیک قرار نمی گیرد اما در بازی های که شما از رفتار فیزیک بکار می برید . کلا عکس و نقاط برخورد تاثیر ندارد چون مستقل است .
این رفتار سنگین است چون از معدلات و انتگرال گیری و مشتقات و فورمول ها بهر می گیرند. که زمان بر هستند. پس هر چه تعداد بیشتر پردازش سنگینی از سی پی یو می کشند همچین حافظه رم بیشتری اشغال می کند.
اما برخورد به شکلی که در برخورد ترسیم می کنید(همان چند ضلعی) ربط دارد یعنی باید چک کند که پیکسلهای شی اول در پیکسل های شی دوم قرار گرفته است یا نه برای این کار به دو جفت آرایه دو بعدی نیاز هست . که طول اجرای هر کدام به اندازه شی بستگی دارد.
اشیای ساده مثل مستطیلی و دایره و ... می توان با چک چند نقطه مهم بجای کل آن پرازش کرد کافی است گوشه چپ بالا را با گوشه پایین و همین کار را برای شی دو م کرد اگر مختصات دو نقطه اولی در شی دوم باشد برخورد روی داده است.