سازگاری با اندازههای مختلف صفحهی نمایشها
|حفظ UI و HUD در مکانشان
به احتمال زیاد بازی شما دارای عناصر UI (با نام مستعار HUD) میباشد، مثل سلامتی، مهمّات یا سایر اطلاعات دیگری که باید همیشه در مکانی خاص بر روی صفحه به نمایش درآیند.
برای این کار لایهای جدید باز کرده و پارالاکس آن را (0،0) کنید. اگر میخواهید موقع تغییر مقیاس بازی مقیاس UI شما تغییری نکند scale rate آن را هم صفر قرار دهید.
مطمئن شوید تمام اشیاء UI شما در این لایه قرار گرفته باشند آنها را در قسمت بالا سمت چپ لیوت قرار دهید، در داخل محوّطه نقطهچین شده که نشان دهندهی ناحیهی پنجرهی بازی است. حالا آنها باید دقیقاً در همان محل در صفحهی نمایش باشند، مثل متن score در تصاویر قبل.
رفتار Anchor
اگر شیئی را در قسمت سمت راست در پایین پنجره قرار دهید و اندازهی پنجره را تغییر دهید متوجّه میشوید که شیء حرکت نمیکند برای اینکه مکانش نسبت به سمت راست و پایین پنجره ثابت بماند میتوانید از رفتار Anchor استفاده کنید تا شیء ما در مکانی که دارد لنگر بیندازد.
توجّه داشته باشید که رفتار Anchor فقط برای اشیائی به کار میرود که در لایهای با پارالاکس (0,0) قرار داشته باشند.
با تنظیم ویژگیهای Anchor در نوار ویژگیها میتوانید مختصّات اشیاء را نسبت به طرف راست پنجره یا پایین پنجره یا هر دو ثابت نگه دارید. به طور پیشفرض اشیاء نسبت به گوشهی بالا-سمت چپ ثابت باقی میمانند.
اگر کنترلهای فرم یا اشیاء دیگری دارید که میخواهید هرچه پنجرهی بازی بزرگتر شد اندازهی آنها نیز بزرگتر شود، میتوانید از ویژگیهای Right edge و Bottom edge رفتار Anchor استفاده کنید. امّا اگر نمیخواهید اندازهی اشیاءتان تغییر کند، مقدار پیشفرض این دو ویژگی که None است را تغییر ندهید.
سایر خصوصیّات به درد بخور
اکسپرشنهای سیستمی WindowWidth و WindowHeight اندازهی فعلی پنجرهی بازی را به پیکسل برمیگردانند. ممکن است بخواهید با توجّه به اندازهی پنجره بعضی از اشیاء را نشان بدهید یا ندهید، تنظیمات خاصّی را برای صفحات نمایش کوچک در نظر بگیرید، یا بعضی از انواع UI را در صفحهی نمایشهای بزرگ نمایش ندهید. در اینجاست که این اکسپرشنها به درد میخورند.
اکسپرشنهای سیستمی ViewportLeft، ViewportRight، ViewportTopو ViewportBottom برای یک لایه میتوانند مختصّات منطقهی دید را برگردانند. مثلاً برای اینکه شیئی در وسط صفحه به نمایش در آید میتوانید مختصّات آن را به صورت زیر تغییر دهید:
X = (ViewportLeft(“Layer”) + ViewportRight(“Layer”)) / 2
Y = (ViewportTop(“Layer”) + ViewportBottom(“Layer”)) / 2
درضمن، در حالت تمام صفحه ممکن است شاهد مشکلاتی در حرکت باشید که منشأ آنها مرزهای لیوت است. برای حلّ این مشکل میتوانید در ویژگیهای لیوت Unbounded scrolling را روی Yes قرار دهید، و خودتان حرکت کردن را محدود کنید (مثلاً اطراف لیوت را با اشیائی جامد پر کنید)
رفتن به حالت تمام صفحه در حین بازی
شیء Browser اکشنی دارد به اسم Request fullscreen. با این اکشن میتوانید بازی را به حالت تمام صفحه ببرید. در پارامترهای این اکشن به راحتی میتوانید یکی از حالتهای Centered، Crop، Scale outer، Scale inner، Letterbox scale یا Letterbox integer scale را انتخاب کنید. اگر یادتان باشد اینها مربوط میشدند به تنظیمات Fullscreen in browser. هنگام تمام صفحه شدن اندازهی پنجرهی بازی هم تغییر میکند، بنابراین مسئلهی سازگاری با چندین صفحهی نمایش اهمّیّت مییابد و در نتیجه این گزینهها را در اختیارمان قرار میدهد.
تذکّر: به خاطر مسائل امنیّتی اکشن Request fullscreen فقط در ایونتهای user-inputted درست کار میکند. ایونتهایی مثل فشردن یک کلید از صفحه کلید و یا کلیک کردن بر روی یک شیء دکمه.
برای اطمینان تست کنید
شما باید بازیتان را بر روی دستگاههای مختلف تست کنید تا ببینید که چگونه کار میکند. در بین بازیها رایج شده است که بسته به اندازهی صفحهی نمایش، نوع UI تغییر میکند. راه اندازی چنین چیزی واقعاً کار میبرد. ولی برای یک بازی ساده میتوانید فقط از یک نوع UI برای تمام اندازهها استفاده کرد. این به بازیتان بستگی دارد.
درضمن شما میتوانید بازیتان را از طریق Wifi یا LAN بر روی دستگاههای دیگر خود تست کنید. این طوری تست بازی بر روی دستگاههای واقعی بسیار سریعتر و سادهتر میشود.
بزرگترین اندازهی صفحهی نمایش آیپدهای نسل سوم 1536×2048 است، و کوچکترین اندازه حدود 480×320 است که متعلّق به آیفون3 و قبل از آن میباشد. این محدودهی خیلی بزرگیست. مطمئن شوید بازیتان در همهی این اندازهها خوب کار میکند. مسلّماً شما نمیخواهید بازیتان در بعضی از صفحهی نمایشها به خاطر دیده نشدن دکمهها یا بیش از حد کوچک بودنشان به طوری که نشود فشارشان داد قابل بازی کردن نباشد.
مجتبی قاسم زاده تهرانی
لینک دانلود اشکال دارد
http://si2.ir/download/276/
خیلی ممنون از اطّلاعرسانیتون
لینک اصلاح شد
با تشکّر
بسم الله الرحمن الرحیم
باسلام
واقعا ممنونم از شما و فیلم های آموزشی که داشتید که واقعا قیمت های مناسبی هم داره…
سوال من از شما اینه که برای بازی های اندروید چه رزولوشنی باید بگذاریم؟این مقاله رو خوندم ولی اخرشم نفهمیدم کدومش بهتره!
الان می خوام بازی طراحی کنم که هم توی گوشی های اندروید و هم توی تبلت ها بیاد چه رزولوشنی بگذارم؟
ممنونم.
بستگی به خروجی شما دارد اگر خروجی cocojs بگیری به هیچ گدوم نیاز ندارید چون خودش اتوماتیک روی همه صفحه ها سازگاره ولی اگر خروجی کردوا بگیرید سایز پیشنهادی من به شما 485,850 هست که روی بیشتر رزولشن ها تمام صفحه هست و حالا حالت Letterbox sclae را روی این تنظیم کن.
اگر سوال داشتید می تونید تو انجمن مطرح کنید.
من متوجه نشدم یعنی اگز خروجی cocojs کلا نیازی به این چیزا ندارم؟
یعنی خودش تصویر رو درست میکنه؟
سلام، نه، فقط شما رو محدود میکنه و نمیگذاره از حالتهای letter box استفاده کنید.
سلام
من می خوام برای اندروید خروجی بگیرم
با چه ابعادی و چه نوع full screen می تونم بازیمو بر روی انواع موبایل ها تمام صفحه کنم؟
ممنون