Birçok ChromeOS cihazda dokunmatik ekran olsa da bu büyük ekranlı cihazlarda oyun oynarken en iyi etkileşim deneyimi genellikle fare, klavye ve gamepad ile sağlanır. Mobil oyun dünyası genellikle dokunma odaklıdır ve dokunmayı kullanmayan kullanıcılara en iyi deneyimi nasıl sunacağımız konusunda düşünmemiz gerekir.
Klavye, fare ve oyun kumandası desteği eklemeyle ilgili en iyi uygulamalara göz atarak başlayın. Kullanıcıların tuşları basılı tuttuğu veya birden fazla tuşa bastığı durumlara özellikle dikkat etmeniz gerekir.
Dokunmatik ekranlı Chromebook'larda dokunmaya dayalı işlemler kullanılabilir ancak mükemmel bir deneyim için dikkatle tasarlanmış fiziksel kontroller de eklemek önemlidir. Örneğin, fare girişi görünümü ayarlamak veya nişan almak için idealdir ancak işlem yapmak için gerekli olmamalıdır. Bir mobil oyunda, kullanıcının başparmağıyla bir düğmeye basarak el feneri, kılıç veya kalkan kullanmasına olanak tanıyan bir ekran menüsü varsa bu düğmeleri fareyle tıklamasını istemek kötü bir deneyim sunar. Bunun yerine, klavye tuşları onKeyUp veya onKeyDown'yi geçersiz kılarak her işlemi tetikleyecek şekilde belirlenmelidir. Ayrıntılar ve kod için giriş uyumluluğu sayfasına bakın.
Fare yakalama
Birinci şahıs bakış açılı oyunlar, fare yakalama uygulandığında masaüstünde en iyi şekilde görünür. Bu işlem, fare işaretçisini gizler ve kullanıcının fareyi kullanarak bakış açısını hareket ettirmesine, nişan almasına, yönlendirmesine vb. olanak tanır. Aşağıda, kullanıcının text_clickme adlı bir metin görünümünü tıklamasından sonra işaretçi konumunu ve düğme durumlarını kaydeden temel bir fare yakalama demosunu görebilirsiniz. Daha fazla bilgi için Android işaretçi yakalama belgelerine bakın.
class MainActivity : AppCompatActivity() { var mouse_x: Float = 0f var mouse_y: Float = 0f var mouse_left_pressed = false var mouse_center_pressed = false var mouse_right_pressed = false var mouse_scrolling = false override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) text_clickme.setOnClickListener { text_clickme.requestPointerCapture() } text_clickme.setOnCapturedPointerListener { view, motionEvent -> // Get the coordinates required by your app mouse_x = motionEvent.x mouse_y = motionEvent.y when (motionEvent.action) { ACTION_DOWN -> { when (motionEvent.buttonState) { BUTTON_PRIMARY -> mouse_left_pressed = true BUTTON_SECONDARY -> mouse_right_pressed = true BUTTON_TERTIARY -> mouse_center_pressed = true } mouse_scrolling = false } ACTION_CANCEL, ACTION_UP -> { when (motionEvent.actionButton) { BUTTON_PRIMARY -> mouse_left_pressed = false BUTTON_SECONDARY -> mouse_right_pressed = false BUTTON_TERTIARY -> mouse_center_pressed = false 0 -> { mouse_left_pressed = false mouse_right_pressed = false mouse_center_pressed = false } } mouse_scrolling = false } ACTION_SCROLL -> { mouse_scrolling = true } else -> { mouse_scrolling = false } } // Indicate event was consumed true } } // Release pointer capture when escape pressed override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean { if (keyCode == KEYCODE_ESCAPE) { text_clickme.releasePointerCapture() return true; } return super.onKeyUp(keyCode, event) } }
Sohbet
Sohbet özellikleri, çok oyunculu oyunların önemli bir bileşeni olabilir. Kullanıcıların oyun oynarken oyununuzun sohbet özelliğiyle nasıl etkileşim kuracağını düşünmek için biraz zaman ayırın. Özellikle klavye ile oynuyorlarsa sohbete erişmek veya mesaj göndermek için fareyi ya da dokunmatik ekranı kullanmaları gerekmemelidir.
Bir kalıp, klavye tuşunun sohbet kutusuna odaklanmasını ve mesaj göndermek için Enter tuşunu kullanmasını sağlayabilir.
override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean { return when(keyCode) { KeyEvent.KEYCODE_C -> { edittext_chatbox.requestFocus() true } KeyEvent.KEYCODE_ENTER -> { submitChatMessage() true } else -> super.onKeyUp(keyCode, event) } }
Android giriş uyumluluğu sayfasındaki klavye dokümanlarına göz atın.
Ekran kalemi desteği
Çizim uygulamaları ve kaydırmaya dayalı oyunlar, ChromeOS cihazlarda kalem girişinden yararlanabilir. Daha fazla bilgi için kalemle giriş sayfasına bakın.
Oyun kumandaları
Chromebook'lar en fazla dört oyun denetleyicisini destekler. Geliştiriciler, bu kumandaları desteklemek için standart Android Oyun Kumandası API'lerini kullanmalıdır.
Düğmeler, ortak eşleme kullanılarak yaygın değerlerle eşlenir. Maalesef tüm oyun kumandası üreticileri aynı eşleme kurallarını kullanmaz. Kullanıcılarınızın farklı popüler kontrol cihazı eşlemeleri arasından seçim yapmasına izin vermek, çok daha iyi bir deneyim sunabilir.