الگوی غوطه وری

این راهنما اجزایی را توصیف می کند که شامل یک تجربه غوطه وری ساده، در قالب یک بازی Charades است. بازی‌ها یک کاربرد عالی برای غوطه‌وری هستند، زیرا بیشتر آنها به یک رابط کاربری سفارشی و کنترل‌های ورودی نیاز دارند.

در طول مسیر، نکات طراحی، توسعه و توزیع را نیز یاد خواهید گرفت که برای ساختن ظروف شیشه ای خود مهم هستند.

قبل از اینکه شروع کنی

منبع کامل بازی Charades در Github موجود است. قبل از شروع آن را به اندروید استودیو وارد کنید، زیرا این راهنما به شدت به آن اشاره دارد.

  1. از صفحه شروع سریع روی Check out from version Control > Git کلیک کنید.
  2. URL کلون را از Charades کپی کنید.
  3. URL کلون را در URL مخزن Vcs قرار دهید و روی Clone کلیک کنید.
  4. در صفحه زیر روی Yes کلیک کنید.
  5. در صفحه زیر روی OK کلیک کنید.
  6. پروژه را بسازید و با کلیک بر روی دکمه Play آن را روی شیشه متصل خود اجرا کنید. حتماً README نمونه را برای جزئیات فراخوان بررسی کنید.

چیزی که یاد خواهید گرفت

یاد خواهید گرفت که چگونه از اجزای Android SDK برای ساخت بخش عمده Charades و سپس GDK برای اتصال به تجربه Glass استفاده کنید. در اینجا لیستی از موضوعاتی است که در مورد آنها یاد خواهید گرفت:

  • طراحی جریان UI با منابع طراحی که ارائه می کنیم
  • طراحی محرک های صوتی برای راه اندازی Glassware
  • استفاده از فعالیت های اندروید برای تعریف ساختار رابط کاربری بازی
  • ساخت آیتم های منوی اندروید که به کاربران امکان می دهد گزینه های بازی را انتخاب کنند
  • ادغام در تجربه Glass با ماشه صوتی در منوی اصلی
  • با استفاده از آشکارسازهای حرکتی GDK که ورودی کاربر را شناسایی کرده و اقدامات سفارشی را انجام می دهد
  • آموزش پیاده سازی های ساده رابط کاربری اندروید که جلا بیشتری می بخشد و از سبک Glass پیروی می کند
  • یادگیری در مورد فرآیند توزیع و آنچه در هنگام انتشار Glassware به دنبال آن هستیم

طرح

قبل از شروع توسعه، کمی زمان بگذارید و ظروف شیشه ای خود را طراحی کنید. انجام این کار به شما ایده خوبی می‌دهد که چه جریان‌های رابط کاربری در Glass بهترین عملکرد را دارند، از چه فرمان صوتی استفاده می‌کنید و کارت‌های شما چگونه به نظر می‌رسند.

البته، طراحی Glassware یک فرآیند تکراری است و برخی از چیزهایی که اکنون طراحی می‌کنید تغییر خواهند کرد، اما انجام بخش خوبی از این کار در ابتدا برای ایجاد یک تجربه عالی بسیار مهم است.

جریان UI

طراحی جریان UI یک تمرین ساده است و به شما امکان می دهد قبل از نوشتن یک خط کد، Glassware خود را تجسم کنید. ما همیشه این کار را برای ظروف شیشه ای که می سازیم انجام می دهیم!

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

صفحه معرفی

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

وقتی کاربران روی صفحه لمسی ضربه می زنند، یک سیستم منو با دو آیتم، بازی جدید و دستورالعمل ها ظاهر می شود.

حالت دستورالعمل

هنگام ایجاد غوطه وری، مکانیزم های ورودی گاهی اوقات جدید هستند، بنابراین مفید است که کاربران بدانند چگونه باید با غوطه وری، به ویژه با یک بازی تعامل داشته باشند.

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

حالت بازی

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

این مجموعه از کارت ها یک کلمه تصادفی (تا 10) را نشان می دهد. کاربران با کشیدن انگشت به جلو و ضربه زدن روی صفحه لمسی وقتی کلمه را به درستی توصیف می کنند، کلمه ای را رد می کنند.

صفحه نمایش نتایج بازی

این صفحه نتایج بازی را نشان می دهد. صفحه «بازی تمام شده» در ابتدا ظاهر می شود و کاربران می توانند برای دیدن نتایج بازی، انگشت خود را به جلو بکشند. هنگامی که کاربران روی هر یک از کارت های نتایج ضربه می زنند، آیتم منوی بازی جدید ظاهر می شود تا به کاربران اجازه می دهد بازی دیگری را شروع کنند.

دستور صوتی

شما باید یک فرمان صوتی را در مراحل اولیه طراحی کشف کنید. فرمان‌های صوتی به کاربران اجازه می‌دهند در صورت نیاز، Glassware را از منوی صوتی Glass Home (کارت ساعت) شروع کنند و بخش عمده‌ای از نحوه طراحی Glassware است.

به عنوان مثال، دستور Post an update به خوبی در مدل آتش و فراموش کردن کار می کند، جایی که کاربران دستور و مقداری متن را بیان می کنند و Glassware آن را بدون هیچ گونه مداخله بیشتر کاربر پردازش می کند. این به کاربران اجازه می دهد تا به سرعت به کاری که انجام می دهند بازگردند.

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

Charades از فرمان صوتی Play a game استفاده می کند. پس از اینکه کاربران فرمان صوتی را فراخوانی کردند، صفحه نمایش چلپ چلوپ Charades ظاهر می‌شود و از کاربران می‌خواهد برای گزینه‌های بیشتر ضربه بزنید ( بازی جدید یا دستورالعمل‌ها در این مورد).

چیدمان کارت

چه در حال ساخت کارت های غوطه ور یا زنده باشید، در صورت امکان باید از طرح بندی CardBuilder یا XML استفاده کنید.

اغلب اوقات، شما همچنان نیاز دارید که طرح‌بندی خود را بسازید، بنابراین دستورالعمل‌های رابط کاربری ما را دنبال کنید تا بهترین ظاهر ظروف شیشه‌ای را داشته باشید.

کرونومتر از دستورالعمل‌های طرح‌بندی کلی پیروی می‌کند، اما دارای طرح‌بندی‌های رابط کاربری سفارشی با استفاده از اجزای استاندارد Android مانند نماها و طرح‌بندی‌ها است.

توسعه دهید

برای توسعه immersions، از همان ابزارهایی استفاده می‌کنید که برای توسعه Android استفاده می‌کنید تا بخش عمده‌ای از Glassware را بسازید و سپس از APIها در افزونه GDK برای دسترسی به عملکردهای خاص Glass، مانند آشکارسازهای اشاره و دستورات صوتی استفاده کنید.

شما اغلب از اجزای رایج اندروید برای ایجاد Glassware استفاده می کنید، اما به خاطر داشته باشید که برخی از مفاهیم گاهی اوقات متفاوت هستند. به عنوان مثال، غوطه ور شدن را با یک فعالیت اندروید معادل ندانید. Immersions تجربیاتی هستند که برای Glass طراحی شده‌اند که با یک یا چند فعالیت Android و همچنین بسیاری از اجزای دیگر GDK و Android SDK ساخته شده‌اند.

بقیه بخش‌های Develop به چگونگی ساختار بازی Charades و اجزای اصلی پروژه‌ای که قبلاً وارد کرده‌اید می‌پردازد. مفید است که Android Studio را در حال حاضر داشته باشید تا بتوانید آن را دنبال کنید. خود کد منبع توضیح داده شده است، بنابراین این بخش به اهداف سطح بالای هر فایل و نکات مفیدی می‌پردازد که می‌توانید در Glassware خود اعمال کنید.

در اینجا مروری کوتاه بر اجزای اصلی Charades است:

  • اعلام ماشه صوتی برای اتصال به منوی صوتی اصلی Glass.
  • فعالیت روی صفحه نمایش اسپلش به کاربران امکان می دهد بازی را شروع کنند یا دستورالعمل ها را ببینند. این فعالیت فعالیت دستورالعمل یا فعالیت بازی را راه اندازی می کند
  • فعالیت آموزشی به کاربران نشان می دهد که چگونه با انجام اقدامات اصلی بازی، بازی را انجام دهند
  • فعالیت گیم پلی به کاربران امکان می دهد بازی واقعی را انجام دهند
  • فعالیت نتایج، امتیاز بازی و لیستی از کلمات حدس زده شده و نامشخص را نشان می دهد. همچنین به کاربران اجازه می دهد یک بازی جدید را با یک آیتم منو شروع کنند.

دستور صوتی

شما دستورات صوتی را با یک فایل منبع XML ایجاد می کنید که دستوری را که استفاده می کنید مشخص می کند و سپس با تعیین منبع XML در فایل AndroidManifest.xml .

فایل های زیر با فرمان صوتی Charades مرتبط هستند:

  • res/xml/voice_trigger_play_a_game .xml - فرمان صوتی را برای استفاده اعلام می‌کند.
  • AndroidManifest.xml - فعالیت را برای شروع زمانی که فرمان صوتی گفته می شود، اعلام می کند.

فعالیت صفحه نمایش اسپلش

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

فایل های زیر با این فعالیت مرتبط هستند:

  • res/layout/activity_start_game.xml - طرح‌بندی صفحه نمایش را اعلام می‌کند.
  • res/menu/start_game.xml - سیستم منوی صفحه نمایش را که حاوی دستورالعمل ها و آیتم های منوی جدید بازی است، اعلام می کند.
  • res/values/dimens.xml - ابعاد استاندارد کارت و بالشتکی را که فعالیت‌های این پروژه برای پیروی از سبک Glass استفاده می‌کنند، اعلام می‌کند.
  • src/com/google/android/glass/sample/charades/StartGameActivity.java - کلاس اصلی برای صفحه نمایش اسپلش.
  • res/drawable-hdpi/ic_game_50.png - نماد منو برای بازی جدید .
  • res/drawable-hdpi/ic_help_50.png - نماد منو برای دستورالعمل‌ها .

مدل بازی

همیشه ایده خوبی است که مدل یک بازی (وضعیت بازی) را از رابط کاربری جدا کنید. کلاس CharadesModel امتیاز بازی و تعداد عبارات حدس زده شده در حالت گیم پلی و دستورالعمل های مختلف و اینکه آیا کاربران در حالت دستورالعمل از آنها عبور کرده اند یا خیر را ردیابی می کند.

فایل های زیر با مدل بازی مرتبط هستند:

  • src/com/google/android/glass/sample/charades/CharadesModel.java

فعالیت بازی پایه

از آنجایی که حالت های آموزشی و گیم پلی بازی دارای عملکرد و رابط کاربری بسیار مشابهی هستند، این کلاس پایه عملکرد مشترکی را برای هر دو تعریف می کند. فعالیت های دستورالعمل ها و حالت های بازی این کلاس را گسترش می دهد.

فایل های زیر با این فعالیت مرتبط هستند:

  • res/layout/activity_game_play.xml - طرح‌بندی را تعریف می‌کند که توسط حالت‌های گیم‌پلی و دستورالعمل‌های Charades به اشتراک گذاشته می‌شود.
  • src/com/google/android/glass/sample/charades/BaseGameActivity.java - عملکرد پایه گیم پلی و حالت های دستورالعمل Charades را که به اشتراک گذاشته شده است، تعریف می کند.

فعالیت دستورالعمل

فعالیت دستورالعمل ها سه کارت را نشان می دهد که نحوه انجام بازی را توضیح می دهد. تشخیص می دهد که آیا کاربران قبل از ادامه کار، اقدام نمایش داده شده روی کارت را انجام می دهند یا خیر.

فایل های زیر با این فعالیت مرتبط هستند:

  • src/com/google/android/glass/sample/charades/TutorialActivity.java - BaseGameActivity را گسترش می دهد و تعریف می کند که چه متن دستورالعملی نشان داده شود و چگونه با حرکات حرکتی هنگام انجام دستورالعمل های بازی توسط کاربران انجام شود.

فعالیت بازی

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

فایل های زیر با این فعالیت مرتبط هستند:

  • GamePlayActivity - BaseGameActivity را گسترش می دهد و شامل منطق اصلی جریان بازی است.

فعالیت نتایج

فعالیت نتیجه، کلمات حدس زده شده، کلمات نامشخص و امتیاز بازی را نشان می دهد. همچنین شامل یک آیتم منو است که به کاربران امکان می دهد یک بازی جدید را شروع کنند.

فایل های زیر با این فعالیت مرتبط هستند:

  • res/layout/game_results.xml - طرح‌بندی کارت «بازی تمام‌شده» را تعریف می‌کند.
  • res/layout/card_results_summary.xml - طرحی را برای نشان دادن کلمات حدس زده شده و نامشخص در یک لیست تعریف می کند.
  • res/layout/table_row_result.xml - یک طرح بندی ردیف جداگانه را برای خلاصه نتایج تعریف می کند.
  • src/com/google/android/glass/sample/charades/GameResultsActivity.java - فعالیت واقعی را تعریف می کند که چیدمان ها و منوهای تعریف شده توسط منابع XML فوق الذکر را نشان می دهد.
  • res/raw/sad_trombone.ogg - صدایی برای پخش وقتی که کاربران تمام کلمات را نمی فهمند.
  • res/raw/triumph.ogg - صدایی که وقتی کاربران از تمام 10 کلمه استفاده می کنند پخش می شود.
  • res/drawable-hdpi/ic_done_50.png - نماد علامت چک که با کلماتی که به درستی حدس زده شده اند ظاهر می شود.

منابع انیمیشن

این منابع انیمیشن جلای بیشتری را به Charades اضافه می کنند:

  • res/anim/slide_out_left.xml - این یک نمای خروجی را متحرک می کند تا به سمت چپ بکشید (به عنوان مثال، زمانی که یک کلمه ارسال می شود).
  • res/anim/slide_in_right.xml - این یک نمای ورودی را متحرک می کند تا از سمت راست به داخل اسلاید شود (به عنوان مثال، زمانی که یک کلمه جدید وارد نمایش می شود).
  • res/anim/tug_right.xml - اگر روی نمایی بکشید که کش رفتن را مصرف نمی کند، این یک انیمیشن کششی تعریف می کند. این به کاربران اجازه می دهد تا بدانند که کشیدن انگشت تاثیری نداشته است.

مانیفست اندروید

فایل AndroidManifest.xml اجزای اصلی Glassware شما را توصیف می کند تا سیستم بداند چگونه آن را اجرا کند. مانیفست برای Charades موارد زیر را اعلام می کند:

  • نماد و نام Glassware. اگر بیش از یک Glassware به یک فرمان صوتی پاسخ دهند، Glass این اطلاعات را در منوی لمسی اصلی نمایش می دهد.
  • تمام فعالیت های مرتبط با Charades. این برای سیستم لازم است تا بداند چگونه فعالیت های Glassware خود را شروع کند.
  • فرمان صوتی و فیلتر قصدی که با بیان فرمان صوتی فعالیت خاصی را شروع می کند.
  • کد نسخه برای Glassware. هر بار که نسخه جدیدی از این APK در MyGlass آپلود می شود، این کد (و معمولاً نام نسخه نیز) باید به روز شود.