زیر و رو نسبت به Y
#1
سلام دوستان
من دوتا اسپرایت دارم ، البته یه اسپرایت که از روش چندین کپی دارم . حالا میخوام بگم اونی که Y کمتر بود و باهم برخورد کردن ، بره زیر . این رو چطوری باید بگم ؟؟؟ 
اینطوری گفتم اما درست نشد . و این باعث شده که خیلی مسخره بشه بازی . 
این اونت :
[تصویر:  Untitled1.png]
اینم مشکلی که پیش میاد : ببینید پای اون بالاییه رو سر پایینیه است .
[تصویر:  Untitled.png]
یه پلاگینم بود درمورد اینکار . استفاده کردم اما فایده نداشت . شایدم من نمیدونستم از کدوم اونتش باید استفاده کنم . اگه این پلاگین رو خواستید معرفی کنید درموردش توضیح بدید . ممنون
استودیو بازیسازی ایروید
جدید ترین ها : شهرزاد ، دربند;1357 و ATOM
[تصویر:  ads.gif]
  پاسخ


 سپاس شده توسط:
#2
خب کاری نداره به جای استفاده از on collision از is overlaping استفاده کن تا هر لحظه صورت بگیره از on collision که استفاده می کنی حکم یک بار کاری رو داره
کانال مطالب آرشیوی کانستراکت 2

آیدی کانال
  پاسخ


 سپاس شده توسط:
#3
اونم امتحان کردم کار نکرده . حالا الان دوباره امتحان میکنم/

نمیشه .ببینید اینم یه نمونه دیگه با وجود عوض کردن اونت (البته اگه دیده بشه) :
[تصویر:  Untitled.png]
استودیو بازیسازی ایروید
جدید ترین ها : شهرزاد ، دربند;1357 و ATOM
[تصویر:  ads.gif]
  پاسخ


 سپاس شده توسط:
#4
اگه میخواید سورس رو برای بنده بفرستید تا بررسی کنم
کانال مطالب آرشیوی کانستراکت 2

آیدی کانال
  پاسخ


 سپاس شده توسط:
#5
(1398/10/12، 04:58 عصر)محمد 82 نوشته است: سلام دوستان
من دوتا اسپرایت دارم ، البته یه اسپرایت که از روش چندین کپی دارم . حالا میخوام بگم اونی که Y کمتر بود و باهم برخورد کردن ، بره زیر . این رو چطوری باید بگم ؟؟؟ 
اینطوری گفتم اما درست نشد . و این باعث شده که خیلی مسخره بشه بازی . 
این اونت :
[تصویر:  Untitled1.png]
اینم مشکلی که پیش میاد : ببینید پای اون بالاییه رو سر پایینیه است .
[تصویر:  Untitled.png]
یه پلاگینم بود درمورد اینکار . استفاده کردم اما فایده نداشت . شایدم من نمیدونستم از کدوم اونتش باید استفاده کنم . اگه این پلاگین رو خواستید معرفی کنید درموردش توضیح بدید . ممنون

سلام

بنده هم همین مشکل رو توی چند از بازی هام داشتم ، از 3 روش مختلف استفاده کردم که روش اول رو به شما توصیه میکنم :

روش اول :

من 5 آبجکت داشتم که باید توی یک لوکیشن زیر هم قرار میگرفتند ، دقیقا مشکل همین بود و من از 5 لایه مختلف استفاده کردم و بر اساس شماره UID هر آبجکت اونو توی لایه اول الی آخر قرار دادم .

روش دوم :

UID اسپرایت رو دریافت کردم ، سپس با اعمال بزرگتر و کوچیک تر شرط گذاشتم تا در صورتی که UID هرکدوم بیشتر بود تاپ بشه به لایه مورد نظر .

روش سوم :

ایجاد خط های فرضی ای بود که اعلام میکردم در صورتی که اسپرایت به این خط فرضی برخورد کرد تاپ بشه به لایه مورد نظر .


هر 3 روش خوب بودن ، اما روش اول رو از این نظر گفته میشه بهتر هست که روی پرفورمنس بازی تاثیر منفی نمیذاره و و باگ کمتری هم نسبت به دو روش دیگه میخوره . ضمنا میتونید از OnCreate هم استفاده بکنید که در این صورت خودش آخرین اسپرایت ساخته شده رو تاپ میکنه ، یعنی شما میتونید اونی که قراره اول نمایش داده بشه رو بذارید آخر سر بسازید .
  پاسخ


 سپاس شده توسط:
#6
دو تا راه هم من بگم :
1) اول یه متغیر اینستنس برای ذخیره y پرنده ها بسازید. بعد بگید:
کد:
every tick | sprite -> set instanceY to self.Y
بعدم بگید :
کد:
every tick | system -> sort Z order
تو کادر اول اسپرایت پرنده رو انتخاب کنید تو کادر دوم همون متغیر اینستنس رو.

2) یه پلاگین هست به اسم ZSorter که میاد براساس y آبجکتهای یک layer رو منظم میکنه.
فقط کافیه تو every tick بگید اینکار رو انجام بده و یادتون نره پرنده هارو یه لایر جدا براشون بسازید :
کد:
every tick | ZSorter -> sort all objects in layer by Y -> layer

نکته ای که هست اینه که این شرط ها هر لحظه چک میشن و مسلما یه بار محاسباتی میندازن رو دوش پردازنده. اگر میدونید آبجکتهای خیلی زیادی ندارید توی لایوت این دو تا روش بهترین ها هستن مخصوصا دومی.
  پاسخ


 سپاس شده توسط:
#7
ببیند موقعیت ابجکت ها رندومه و تعدادشون هم رندومه یعنی من نمیدونم چی میشه . پس از روش های اقا حسام فک نکنم بشه استفاده کرد چون نمیدونم کجا میان و ممکنه یه اسپرایت که uid بیشتری داره بیاد زیر قبلی که در این صورت درسته و مشکلی نیست . مشکل وقتیه که میره بالای قبلی و پاش میره تو صورت قبلی . 
اما تعدادشون از 23 تا بیشتر نمیشه . حالا با این تعاریف چه راهی رو پیشنهاد میکنید ؟؟؟
استودیو بازیسازی ایروید
جدید ترین ها : شهرزاد ، دربند;1357 و ATOM
[تصویر:  ads.gif]
  پاسخ


 سپاس شده توسط:
#8
23 آبجکت تعداد مناسبی به نظر میاد.
من خودم تو پروژه ام تا 15 تاش رو تست کردم و با روش دوم مشکلی نبوده.
حالا باز خودتون تست کنید مخصوصا روی موبایل.
  پاسخ


 سپاس شده توسط:
#9
البته پرنده 23 . وگرنه ابجکت زیاده اما نیازی به بررسی y هاشون نیست . فقط همین پرنده ها لازمه
استودیو بازیسازی ایروید
جدید ترین ها : شهرزاد ، دربند;1357 و ATOM
[تصویر:  ads.gif]
  پاسخ


 سپاس شده توسط:
#10
(1398/10/12، 09:42 عصر)محمد 82 نوشته است: البته پرنده 23 . وگرنه ابجکت زیاده اما نیازی به بررسی y هاشون نیست . فقط همین پرنده ها لازمه

گذاشتن پرنده ها تو لایه جدا خیلی مهمه.
بخش بزرگی از بار پردازشی اینجوری کم میشه و صرفه جویی تو مموری هست.
چون فقط آبجکتهای مشابه دارن با هم چک میشن.
  پاسخ


 سپاس شده توسط:


موضوع‌های مشابه…
موضوع نویسنده پاسخ بازدید آخرین ارسال
Information پرداخت درون برنامه مایکت کوردوا ya mahdi 0 230 1404/1/17، 05:43 عصر
آخرین ارسال: ya mahdi
  نحوه خروجی اندروید کوردوا ya mahdi 0 182 1404/1/11، 04:06 عصر
آخرین ارسال: ya mahdi
Wink حل شده مقادير لازم در environment variable ᔕinaᗪehghani 24 11,598 1403/10/23، 12:10 صبح
آخرین ارسال: Tggi
  تپسل .....فروشگاه Hamidreza 3 1,932 1403/10/22، 11:57 عصر
آخرین ارسال: Tggi
  خروجی اندروید با Intel xdk ya mahdi 0 130 1403/8/25، 02:08 عصر
آخرین ارسال: ya mahdi

پرش به انجمن: