یکی از بارزترین مزایای دستگاههای ChromeOS، صفحه نمایشهای بزرگ و زیبای آنها و سهولت استفاده از مانیتورهای خارجی است. این فضای زیاد صفحه نمایش، پتانسیل زیادی برای بازیها ارائه میدهد، اما استفاده خوب از آن میتواند نیاز به تفکر و کار طراحی بیشتری داشته باشد.
تغییرات جهتگیری و پیکربندی
برخی از برنامههای تلفن همراه به طور خاص برای تلفنهای کوچک طراحی شدهاند و جهتگیری آنها به صورت عمودی قفل شده است. این امر با کاهش تعداد تغییرات پیکربندی که احتمالاً بازی دریافت میکند و با کاهش تعداد طرحبندیهای مختلف مورد نیاز، برخی از بردهای به ظاهر سریع را ارائه میدهد. با این حال، این انتخاب میتواند شگفتیهای پنهانی نیز داشته باشد - با انتخاب عدم مدیریت تغییرات جهتگیری، بسیاری از برنامهها برای سایر تغییرات پیکربندی مانند تغییر اندازه پنجره، اتصال صفحه کلید، نمایشگرهای خارجی و غیره آماده نخواهند بود. این موارد میتوانند باعث خرابیها و راهاندازی مجدد غیرمنتظره شوند، برای اطلاعات بیشتر به تغییرات زمان اجرا مراجعه کنید. در حالی که این تغییرات در دستگاههای تلفن نیز اتفاق میافتد، اما اغلب در دستگاههای تاشو و ChromeOS نیز اتفاق میافتد و باید به خوبی مدیریت شود.
علاوه بر این، در دستگاههای صفحه نمایش بزرگ با صفحه نمایشهای افقی یا تاشو با نسبت ابعاد مربعی، بازیهایی که جهت عمودی ثابتی دارند با نوارهای سیاه بزرگ در کنار ظاهر میشوند.
برخی دیگر از بازیهایی که برای گوشی طراحی شدهاند، ممکن است برنامههای خود را در حالت افقی قفل کنند. کاربران تبلت یا دستگاههای تبدیلشونده مجبور خواهند بود دستگاه را در حالت افقی نگه دارند که ممکن است نسبت به گوشی، حس تهاجمیتری ایجاد کند و تجربه بازی شما را کاهش دهد. برای تبلتها و دستگاههای تبدیلشونده با صفحه نمایش بزرگ، ممکن است بازی در حالت عمودی فضای کافی داشته باشد. برای برخی افراد، ممکن است نگه داشتن دستگاه در این حالت راحتتر باشد - به آنها اجازه میدهد تا برای مدت طولانیتری با بازی شما تعامل داشته باشند.
بسته به وسعت و بلوغ بازیهای شما، روشهای مختلفی برای رسیدگی به این موضوع وجود دارد. در حالت ایدهآل، بازی شما میتواند به صورت پویا با اندازههای مختلف صفحه نمایش سازگار شود و یک تجربه همهجانبه و بهبود یافته را برای کاربرانی که صفحه نمایشهای بزرگتری دارند، ارائه دهد. رویکرد دیگر، یافتن راههای خلاقانه برای پر کردن فضای سیاه خالی با اطلاعات مفید مانند آمار، نقشهها یا پنجرههای چت یا گنجاندن تصاویر مرتبط با بازی به عنوان پسزمینه به جای رنگ سیاه است که قاببندی زیباتری را برای گیمپلی اصلی فراهم میکند.
در صورت امکان، به کاربران خود اجازه دهید تا در هر دو جهت، در صورتی که اندازه صفحه نمایش اجازه میدهد، از برنامه شما استفاده کنند.
مثال ۱

یک بازی پازل، یک بازی اندروید بالغ است که برای گوشیهای پرتره طراحی شده است. در صفحه نمایشهای بزرگ و افقی، با نوارهای سیاه در کنار اجرا میشود. از آنجا که این بازی پایگاه کاربری فعال و بزرگی داشت و توسعهدهنده روی عنوان بعدی خود تمرکز دارد، تصمیم گرفتند برای هر مرحله و منو یک تصویر با فوکوس نرم اضافه کنند تا بازی را بدون نیاز به بازنویسی رابط کاربری، قاببندی کنند. از آنجا که آنها در حال توسعه فعال برای بازی بعدی هستند، توسعهدهنده پشتیبانی از حالت افقی را در عنوان جدید لحاظ کرده است.
مثال ۲

یک بازی مسابقهای ماشین که برای موبایل طراحی شده است، برای بهینهسازی فضای صفحه نمایش برای تلفنها، به حالت افقی قفل شده است. اخیراً، کاربران تبلت و ChromeOS از سخت بودن بازی شکایت دارند و درخواست پشتیبانی از حالت عمودی را کردهاند. توسعهدهنده، بررسی اندازه صفحه نمایش را در کد خود گنجانده است و اگر صفحه نمایش به اندازه کافی بزرگ باشد، حالت عمودی مجاز است. برای اینکه همچنان نمای زاویه دید عریض مورد نیاز بازی را فراهم کند، محتوا در وسط صفحه قرار میگیرد در حالی که یک نوار رابط کاربری استریوی ماشین اضافی در پایین صفحه ظاهر میشود که به کاربران امکان میدهد به راحتی ایستگاه رادیویی را تغییر دهند و نقشه و آمار مسابقه به بالای صفحه منتقل میشوند و نمای شیشه جلو را آزاد میکنند و بازی را بهبود میبخشند.
همچنین به دستورالعملهای مربوط به صفحه نمایش بزرگ اندروید و مستندات اندازه صفحه نمایش اندروید مراجعه کنید.
قابلیت چند پنجرهای
بازیها اغلب یک تجربه فراگیر و تمام صفحه را در اختیار کاربران قرار میدهند. با این حال، برخی از کاربران در رایانههای رومیزی یا تاشو دوست دارند سرویسهای چت، موسیقی یا پخش ویدیو را همزمان در یک پنجره جداگانه باز و قابل مشاهده داشته باشند. اگر آنها در حال ضبط یا اشتراکگذاری صفحه نمایش خود هستند، باز و قابل مشاهده بودن پنجرههای اضافی نیز میتواند مفید باشد.
قابلیت چند پنجرهای، رفتار پیشفرض برنامهها و بازیهای اندروید است که هم برای دسکتاپهای ChromeOS و هم برای تلفنها و تبلتها در حالت تقسیم صفحه اعمال میشود. اگر میخواهید از تغییر اندازه بازی خود جلوگیری کنید، در AndroidManifest.xml اعلام کنید که بازی قابل تغییر اندازه نیست.
android:resizeableActivity="false"
اگر بازی شما قابلیت تغییر اندازه دارد، چند نکته مهم وجود دارد:
- وقتی اندازه پنجره تغییر میکند، اندروید به طور پیشفرض بازی شما را «نابود» و دوباره «ایجاد» میکند (به چرخه حیات اندروید مراجعه کنید). بازی شما یا باید در طول این بازسازیها به طور مرتب وضعیت را پیگیری کند (به مستندات Jetpack ViewModel مراجعه کنید)، یا اینکه به صورت دستی این تغییرات پیکربندی را مدیریت کرده و از ایجاد مجدد جلوگیری کند و موتور بازی شما اندازه جدید صفحه نمایش را مدیریت کند. برای اطلاعات بیشتر، به این ویدیو از کنفرانس توسعهدهندگان بازی ۲۰۱۹ مراجعه کنید.
- مدیریت صحیح
onPauseدر صورتی که برنامه شما قابل مشاهده وSTARTEDباشد، اماRESUMEDنشده باشد. به چرخه حیات چند پنجرهای مراجعه کنید. - نسبتهای ابعادی مختلف را برای پنجرههای تغییر اندازهشده در نظر بگیرید (برش در مقابل مقیاسبندی داراییها)
درباره مدیریت پنجره بیشتر بخوانید.
حالت تمام صفحه
وقتی بازی شما در یک پنجره تمام صفحه اجرا میشود، میتوانید آن را در حالت فراگیر (immersive mode) قرار دهید تا حاشیههای پنجره و سایر عناصر مزاحم صفحه حذف شوند. برای اطلاعات بیشتر به مستندات تمام صفحه اندروید مراجعه کنید.
private fun hideSystemUI() { // Enables regular immersive mode. window.decorView.systemUiVisibility = ( View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY or View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) }