El Yapımı Desen

Bu kılavuzda, Charades oyunu biçiminde basit bir sürükleyici deneyim oluşturan bileşenler açıklanmaktadır. Çoğu kullanıcı için özel bir kullanıcı arayüzü ve giriş denetimleri gerektiğinden oyunlar, sürükleyici etkinlikler için mükemmel bir kullanım alanıdır.

Eğitim sırasında, kendi Glassware'inizi geliştirmeniz için önemli olan tasarım, geliştirme ve dağıtım ipuçlarını da öğreneceksiniz.

Başlamadan önce

Charades oyununun tam kaynağı Github'da mevcuttur. Kılavuzda bu konu hakkında ayrıntılı bilgi olduğundan önce başlamadan önce Android Studio'ya aktarın.

  1. Hızlı Başlangıç ekranından Sürüm kontrolü > Git'i tıklayın.
  2. Charades'den klon URL'sini kopyalayın.
  3. Klon URL'yi Vcs Deposu URL'sine yapıştırın ve Klon'u tıklayın.
  4. Sonraki ekranda Evet'i tıklayın.
  5. Sonraki ekranda Tamam'ı tıklayın.
  6. Projeyi oluşturun ve Oynat düğmesini tıklayarak bağlı Glass'ınızda çalıştırın. Çağrı ayrıntıları için örneğin README sayfasını kontrol edin.

Neler öğreneceksiniz?

Android SDK'dan bileşenleri kullanarak çarşıda sürükleyici bir deneyim oluşturmayı ve ardından Glass deneyimini yaşamak için GDK'yı nasıl kullanacağınızı öğreneceksiniz. Öğreneceğiniz konuların listesini aşağıda bulabilirsiniz:

  • Kullanıcı arayüzü akışını, sunduğumuz tasarım kaynaklarıyla tasarlama
  • Glassware'i başlatmak için ses tetikleyicileri tasarlama
  • Oyunun kullanıcı arayüzü yapısını tanımlamak için Android etkinliklerini kullanma
  • Kullanıcıların oyun seçeneklerini belirlemesini sağlayan Android menü öğeleri oluşturma
  • Ana menüde sesli tetikleyiciyle Glass deneyimine entegre olma
  • Kullanıcı girişini algılayan ve özel işlemler gerçekleştiren GDK hareket algılayıcıları kullanma
  • Fazladan cilalama ve Glass stiline uyma ile ilgili basit Android kullanıcı arayüzü uygulamalarını öğrenme
  • Dağıtım süreci ve Glassware'i değiştirirken nelere dikkat ettiğimiz

Tasarım

Geliştirmeye başlamadan önce biraz zaman geçin ve Glassware'i tasarlayın. Bu, hangi kullanıcı arayüzü akışlarının Glass'ta en iyi sonucu verdiğine, hangi ses komutunu kullanacağınıza ve kartlarınızın nasıl görüneceğine dair iyi bir fikir verir.

Elbette Glassware'i tasarlamak tekrar tekrar yapılan bir süreçtir ve şu anda tasarladığınız bazı şeyler değişecektir. Ancak, bu işin başında iyi bir iş yapmak harika bir deneyim oluşturmak için oldukça önemlidir.

Kullanıcı arayüzü akışı

Kullanıcı arayüzü akışını tasarlamak basit bir alıştırmadır ve bir kod satırı yazmadan önce Glassware'inizi görselleştirmenize olanak verir. Geliştirdiğimiz Glassware için her zaman bunu yapıyoruz!

Charades incelemesinin temel kullanıcı arayüzü öğelerini inceleyelim. Böylece, kullanıcı arayüzünün nasıl çalıştığı ve kendi Glassware'inizi oluştururken bu işlemin ne kadar faydalı olabileceği hakkında bir fikir edinebilirsiniz.

Başlangıç ekranı

Kullanıcılar Charades etkinliğini başlattıklarında bu ekranı görürler. Kullanıcıların oyun deneyimine hemen girmeden önce kendi yönlerini görmelerine olanak tanır ve kullanıcıların aşina olduğu genel bir oyun yapısıdır.

Kullanıcılar dokunmatik alana dokunduğunda iki öğeli bir menü sistemi görünür: Yeni Oyun ve Talimatlar.

Talimatlar modu

Yoğunluk oluştururken giriş mekanizmaları bazen yenidir. Bu nedenle, kullanıcılara özellikle de bir oyunda yer alan içeriklerle etkileşimde bulunmaları gerektiğini bildirmeleri faydalıdır.

Bu kart grubunda oyunla ilgili talimatlar gösterilip kullanıcı arayüzünde nasıl oynanacağı ve hangi hareketlerin kullanılacağı konusunda kullanıcılara yol gösterilir. Kullanıcılar, başlangıç ekranındaki Talimatlar menü öğesine dokunarak buraya ulaşır.

Oynanabilirlik modu

Bu ekranlar ana oyun akışını oluşturur. Kullanıcılar, başlangıç ekranındaki Yeni oyun menü öğesine dokunarak bu akışa gidebilir.

Bu kart grubunda rastgele bir kelime (en fazla 10) gösterilir. Kullanıcılar bir kelimeyi atlayarak dokunarak dokunmatik alana dokunabilirler.

Oyun sonuçları ekranı

Bu ekranda maç sonuçları gösterilir. "Oyun bitti" ekranı başlangıçta görünür ve kullanıcı, oyun sonuçlarını görmek için ileri kaydırabilir. Kullanıcılar sonuç kartlarından herhangi birine dokunduğunda Başka Oyun menü öğesi görüntülenir. Böylece kullanıcı başka bir oyun başlatabilir.

Sesli komut

Sesli komutu, tasarım sürecinin başlarında bırakmalısınız. Sesli komutlar, kullanıcıların Glassware'i Glass Home (saat kartı) sesli menüsünden başlatmasına olanak tanır ve gerektiğinde Glassware'i tasarlama şeklinizin önemli bir parçasıdır.

Örneğin, Bir güncelleme yayınla komutu, kullanıcıların komutu ve bazı metinleri sesli olarak okuduğu, ardından da kullanıcıları unuttukları bir yangın söndürme modelinde iyi sonuç verir. Bu, kullanıcıların yaptıkları işlere hızlı bir şekilde geri dönmesine olanak tanır.

Öte yandan, Oyun oyna gibi yerlerde kullanıcıları genellikle bir başlangıç ekranına yönlendirerek önce bu yönde ilerlemelerini istersiniz. Bu sesli komut büyük ihtimalle kullanıcıların ilgisini çektiği için kullanıcıların oyunu başlatmak için ekstra ekran ve menü görme konusunda sakınca görmelerini bekleyebilirsiniz. Sesli komuttan hemen sonra kullanıcıları oyun deneyimine yönlendirmek, oyunlar için genellikle kötü bir deneyimdir.

Çağrı Oyun oyna sesli komutunu kullanır . Kullanıcılar sesli komutu çağırdıktan sonra Charades giriş ekranı görünür ve kullanıcılardan Daha fazla seçeneğe dokunma (bu örnekte Yeni oyun veya Talimatlar) dokunmaları istenir.

Kart düzenleri

Yoğun içerik veya canlı kart oluştururken, mümkün olduğunda CardBuilder veya XML düzenlerini kullanmanız gerekir.

Genellikle kendi düzeninizi oluşturmanız gerekir, bu yüzden en iyi görünümlü Glassware'e sahip olmak için kullanıcı arayüzü yönergelerimize uyun.

Kronometre genel düzen yönergelerine uyar, ancak görünümler ve düzenler gibi standart Android bileşenlerini kullanan özel kullanıcı arayüzü düzenlerine sahiptir.

Geliştirme

Yoğunlaştırmak amacıyla, Glassware'in büyük bir kısmını derlemek için Android geliştirme amacıyla kullandığınız araçların aynısını kullanırsınız. Ardından, GDK eklentisindeki API'leri kullanarak hareket dedektörleri ve sesli komutlar gibi Glass'a özgü işlevlere erişebilirsiniz.

Glassware oluşturmak için sık kullanılan Android bileşenlerini kullanacaksınız ancak bazı kavramların bazen farklı olduğunu unutmayın. Örneğin, yoğun bir Android etkinliği olduğu için bunu uygulamaya koymayın. Yoğunluk, Glass için tasarlanmış bir veya daha fazla Android etkinliğiyle ve GDK ile Android SDK'nın diğer birçok bileşeniyle oluşturulmuş deneyimlerdir.

Geliştirme bölümlerinin geri kalanında, Charades oyununun nasıl yapılandırıldığı ve daha önce içe aktardığınız projenin ana bileşenleri ele alınır. Takip edebilmek için Android Studio'yu şu anda çalışır durumda tutmak faydalıdır. Kaynak kodunun kendisi için yorum girildiğinden bu bölümde her dosyanın üst düzey amacı ve kendi Glassware'inize uygulayabileceğiniz faydalı ipuçları işlenmektedir.

Charades'in ana bileşenlerine kısa bir genel bakış:

  • Glass ana ses menüsüne bağlanacak ses tetikleyici beyanı.
  • Kullanıcıların bir oyunu başlatmalarına veya talimatları görmelerine olanak sağlamak için ekran etkinliğini düzeltin. Bu etkinlik, talimatlar veya oyun oynama etkinliği
  • Eğitim etkinliği, kullanıcılara oyunun ana işlemlerini gerçekleştirerek oyunun nasıl oynanacağını gösterir
  • Oyun etkinliği, kullanıcıların gerçek oyunu oynamasını sağlar
  • Sonuç etkinliği, oyunun puanını ve tahmin edilen ve tahmin edilmeyen kelimelerin listesini gösterir. Ayrıca, kullanıcıların bir menü öğesi ile yeni bir oyuna başlamalarını sağlar.

Sesli komut

Kullandığınız komutu belirten bir XML kaynak dosyasıyla ve daha sonra, AndroidManifest.xml dosyasında XML kaynağını belirterek sesli komutlar oluşturursunuz.

Aşağıdaki dosyalar Charades sesli komutuyla ilişkilidir:

  • res/xml/voice_trigger_play_a_game .xml - Kullanılacak sesli komutu tanımlar.
  • AndroidManifest.xml - Sesli komut söylendiğinde başlatılacak etkinliği tanımlar.

Başlangıç ekranı etkinliği

Başlangıç ekranı, kullanıcıların Charades'i başlatırken gördükleri ilk şeydir ve oyuna başlamadan önce onları yönlendirir.

Aşağıdaki dosyalar bu etkinlikle ilişkilendirilmiş:

  • res/layout/activity_start_game.xml - Başlangıç ekranının düzenini belirtir.
  • res/menu/start_game.xml - Başlangıç ekranı, Talimatlar ve Yeni oyun menü öğelerini içeren menü sistemini tanımlar.
  • res/values/dimens.xml - Bu projenin faaliyetlerinin Glass stilini izlemek için kullandığı standart kart boyutlarını ve dolguyu tanımlar.
  • src/com/google/android/glass/sample/charades/StartGameActivity.java - Başlangıç ekranının ana sınıfı.
  • res/drawable-hdpi/ic_game_50.png - Yeni oyun menü simgesi.
  • res/drawable-hdpi/ic_help_50.png - Talimatlar menü simgesi.

Oyun modeli

Bir oyunun modelini (oyunun durumu) kullanıcı arayüzünden ayırmak her zaman iyi bir fikirdir. CharadesModel sınıfı, oyunun puanını ve oyun modunda kaç ifadenin tahmin edildiğini, çeşitli talimatları ve kullanıcıların talimatlar modunda bunları geçip geçmediğini takip eder.

Aşağıdaki dosyalar oyun modeliyle ilişkilendirilir:

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

Temel oyun etkinliği

Oyunun eğitici ve oynanabilir modları çok benzer işlevlere ve kullanıcı arayüzlerine sahip olduğundan, bu temel sınıf her ikisinin de ortak işlevini tanımlar. Talimat ve oynanabilirlik modlarıyla ilgili etkinlikler bu sınıfı genişletiyor.

Aşağıdaki dosyalar bu etkinlikle ilişkilendirilmiş:

  • res/layout/activity_game_play.xml - Charades'in oyun ve talimat modları tarafından paylaşılan düzeni tanımlar.
  • src/com/google/android/glass/sample/charades/BaseGameActivity.java - Charades'in oynanabilirlik ve talimat modlarının temel işlevini (paylaşılan modlar) tanımlar.

Talimat etkinliği

Talimat etkinliği, oyunun nasıl oynanacağını açıklayan üç kart gösterir. Kullanıcıların devam etmeden önce kartta gösterilen işlemi gerçekleştirip gerçekleştirmediğini tespit eder.

Aşağıdaki dosyalar bu etkinlikle ilişkilendirilmiş:

  • src/com/google/android/glass/sample/charades/TutorialActivity.java -BaseGameActivity öğesini genişletir ve kullanıcılara oyun talimatlarından bahsedilirken hangi talimat metninin gösterileceğini ve hareketlerin nasıl işleneceğini tanımlar.

Oynanabilirlik

Oyun etkinliği, oyunun ana akışını tanımlar. Gösterilecek kelimeleri ve puanların nasıl tutulacağını belirler, hareketlerle başa çıkacak bir hareket algılayıcısına sahiptir ve oyun bittiğinde sonuç etkinliğini başlatır.

Aşağıdaki dosyalar bu etkinlikle ilişkilendirilmiş:

  • GamePlayActivity - BaseGameActivity öğesini genişletir ve ana oyun akışı mantığını içerir.

Sonuç etkinliği

Sonuç etkinliğinde, tahmin edilen kelimeler, tahmin edilemeyen kelimeler ve maç skoru gösterilir. Ayrıca, kullanıcıların yeni bir oyun başlatmasını sağlayan bir menü öğesi de içerir.

Aşağıdaki dosyalar bu etkinlikle ilişkilendirilmiş:

  • res/layout/game_results.xml - "Oyun bitti" kartının düzenini tanımlar
  • res/layout/card_results_summary.xml - Tahmini ve tahmin edilmeyen kelimeleri bir listede gösterecek düzeni tanımlar.
  • res/layout/table_row_result.xml - Sonuç özeti için ayrı bir satır düzeni tanımlar.
  • src/com/google/android/glass/sample/charades/GameResultsActivity.java - Yukarıda belirtilen XML kaynakları tarafından tanımlanan düzenleri ve menüleri gösteren gerçek etkinliği tanımlar.
  • res/raw/sad_trombone.ogg - Kullanıcılar tüm sözcükleri anlamadığında çalan ses.
  • res/raw/triumph.ogg - Kullanıcılar 10 kelimenin tamamını geçtiğinde çalan ses.
  • res/drawable-hdpi/ic_done_50.png - Doğru tahmin edilen kelimelerle görünen onay işareti simgesi.

Animasyon kaynakları

Bu animasyon kaynakları, Charades'e daha fazla zahmet katıyor:

  • res/anim/slide_out_left.xml - Bu seçenek, dışarı doğru sola kaydırma hareketi yapar (örneğin, bir kelime iletildiğinde).
  • res/anim/slide_in_right.xml - Sağdan içeri doğru açılan bir giriş görünümünü canlandırır (örneğin, görünüme yeni bir kelime girdiğinde).
  • res/anim/tug_right.xml: Bu, kaydırmayı kullanmayan bir görünümde kaydırma yaptığınızda oluşan bir animasyon tanımlar. Bu sayede kullanıcılar hızlıca kaydırmanın herhangi bir etkisi olmaz.

Android Manifest'i

AndroidManifest.xml dosyası, Glassware'in temel bileşenlerini açıklayarak sistemin nasıl çalışacağını belirler. Charades manifesti şu şeyleri bildirmektedir:

  • Glassware'in simgesi ve adı. Aynı sesli komuta birden fazla Glassware yanıt verirse Glass bu bilgileri ana dokunma menüsünde görüntüler.
  • Charades ile ilişkili tüm etkinlikler. Sistemin Glassware'inizin etkinliklerini nasıl başlatacağını bilmesi için bu gereklidir.
  • Sesli komut söylendiğinde belirli bir etkinliği başlatan sesli komut ve bir intent filtresi.
  • Glassware için sürüm kodu. Bu APK'nın MyGlass'a her yeni sürümü yüklendiğinde bu kod (ve genellikle sürüm adı) güncellenmelidir.