حل شده تغییر Z Order
#1
با سلام خدمت دوستان

من دارم یه بازی پلتفرمر شبیه Infinite Jump خود کانستراکت میسازم و توی بازیم با دوتا مشکل مواجه شدم:

1. وقتی با Z Order طریقه دیده شدن اسپرایت ها رو مشخص میکنم در شروع لی اوت همه چیز درسته و کاراکتر جلوی پلتفرم دیده میشه ولی بعد با ساخته شدن پلتفرم های جدید کاراکتر در پشت پلتفرم دیده میشه، چطور میشه کاری کرد که کاراکتر همیشه در جلوی پلتفرم دیده بشه؟

2. من میخوام محل ظاهر شدن دشمن روی پلتفرم باشه، وقتی مختصات پلتفرم رو برای محل ساخته شدن دشمن میدم دشمن فقط در پلتفرم های پایین تصویر ظاهر میشه و اگه از ViewportTop استفاده کنم دیگه روی پلتفرم ظاهر نمیشه، چطور میشه کاری کرد که دشمن در پلتفرمهای بالای تصویر دیده شه؟

با تشکر
  پاسخ


 سپاس شده توسط:
#2
ممکنه در طول بازی که جلو میرین، یه سری اسپرایت ها و آبجکت ها با zOrder بالاتر هستند که این اتفاق میافته و اینم بگم که تا زمانی که به صورت دستی، دو آبجکت روی هم نباشن، مشخص نمیشه که کدوم zOrder بالاتری داره.

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


 سپاس شده توسط: Game Baker
#3
جالبه که کانستراکت سیستمی برای مشخص کردن اولویت نمایش اسپرایت ها نسبت به هم طراحی نکرده ولی طبق راهنمایی شما لایه جدیدی اضافه کردم و با انتقال کاراکتر به اون لایه مشکلم حل شد، ممنون

در مورد ظاهر شدن دشمن روی پلتفرم نظری ندارین که چطور میشه کاری کرد که دشمن روی پلتفرمی که در بالای صفحه وجود داره ظاهر شه؟
  پاسخ


 سپاس شده توسط:
#4
خوشحالم که مشکلتون برطرف شد،
در مورد دومی، اصلا متوجه نشدم چیه مشکل شما!
اگه ممکنه یه فایل نمونه بذارین.
  پاسخ


 سپاس شده توسط: Game Baker
#5
این سورس رو ببینین:
سورس

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


 سپاس شده توسط:
#6
سلام
متوجه منظورتون شدم:
باید دشمنی که ساخته میشه و یا از قبل بوده تو یه لایه مشترک باشند!
و به اونتی که دشمن میسازه یک اکشن دیگه هم اضافه کنید که همون شئ دشمن z order بشه:


کد:
Every x second=0.5 >>> craete object and sprite. z order
  پاسخ


 سپاس شده توسط: mah ، Game Baker
#7
,با سلام خدمت شما

جناب ابراهیمی، مشکل z order حل شده فقط الان مشکل ساخته شدن دشمن روی پلتفرم باقی مونده، یعنی من میخوام دشمن حتما رو پلتفرم ظاهر بشه و این پلتفرم حتما جز پلتفرمهای بالای تصویر باشه، الان دستور رو به این صورت نوشتم:

system >> every 5 second >> system >> create object enenmy on layer "object" at (platform.x ,platform.y)

در این صورت دشمن فقط در پلتفرم های پایین تصویر ظاهر میشه

من دستور به شکل دیگه ای هم نوشتم:

system >> every 5 second >> system >> create object enenmy on layer "object" at (platform.x
ViewportTop("Game")),

در این صورت دشمن در بالای تصویر ظاهر میشه ولی دقیقا روی پلتفرم نیست میخواستم ببینم که چطور میشه دشمن هم هم در بالای تصویر باشه روی پلتفرم؟
  پاسخ


 سپاس شده توسط:
#8
دوست عزیز،

شما باید زمانی که platform جدید ایجاد میشود، با استفاده از یک sub event و شرط اینکه سیستم یکی رو به صورت رندوم انتخاب کنه و شرط هر مثلا 5 ثانیه دشمن رو روش ایجاد کنه اینکاری رو که میخواین بکنین.

خب، من براتون درستش کردم.
اینم لینک:
random_pick_create_enemy
  پاسخ


 سپاس شده توسط: Game Baker
#9
با تشکر از شما دوست عزیز

دقیقا همینکارو انجام دادم و مشکلم حل شد

بازم ممنون
  پاسخ


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


موضوع‌های مشابه…
موضوع نویسنده پاسخ بازدید آخرین ارسال
Information پرداخت درون برنامه مایکت کوردوا ya mahdi 0 230 1404/1/17، 05:43 عصر
آخرین ارسال: ya mahdi
  نحوه خروجی اندروید کوردوا ya mahdi 0 178 1404/1/11، 04:06 عصر
آخرین ارسال: ya mahdi
Wink حل شده مقادير لازم در environment variable ᔕinaᗪehghani 24 11,596 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

پرش به انجمن: