Meskipun banyak perangkat ChromeOS memiliki layar sentuh, untuk game, pengalaman interaksi terbaik di perangkat layar besar ini sering kali diberikan melalui mouse, keyboard, dan gamepad. Dunia game seluler sering kali berfokus pada sentuhan dan perlu dipikirkan cara memberikan pengalaman terbaik bagi pengguna yang tidak menggunakan sentuhan.
Mulai dengan mempelajari praktik terbaik untuk menambahkan dukungan keyboard, mouse, dan pengontrol game. Anda harus memberikan perhatian khusus pada kasus saat pengguna menahan tombol atau mungkin menekan beberapa tombol.
Tindakan berbasis sentuhan tidak masalah untuk Chromebook dengan layar sentuh, tetapi penting juga untuk menyertakan kontrol fisik yang cermat untuk pengalaman yang luar biasa. Misalnya, input mouse sangat bagus untuk menyesuaikan tampilan atau membidik, tetapi tidak boleh diperlukan untuk melakukan tindakan. Jika game seluler memiliki menu di layar yang memungkinkan pengguna menggunakan obor, pedang, atau perisai dengan menekan tombol menggunakan ibu jari, mewajibkan mereka mengklik tombol ini dengan mouse akan memberikan pengalaman yang buruk. Sebagai gantinya, tombol keyboard harus ditetapkan untuk memicu setiap tindakan dengan mengganti onKeyUp atau onKeyDown. Lihat halaman kompatibilitas input untuk mengetahui detail dan kodenya.
Pengambilan mouse
Game sudut pandang orang pertama akan terlihat paling baik di desktop jika menerapkan pengambilan mouse. Tindakan ini menyembunyikan pointer mouse dan memungkinkan pengguna memindahkan sudut pandang, membidik, mengarahkan, dll., menggunakan mouse. Di bawah ini adalah demo pengambilan mouse dasar yang merekam posisi pointer dan status tombol setelah pengguna mengklik tampilan teks bernama text_clickme. Lihat dokumentasi pengambilan pointer Android untuk mengetahui informasi selengkapnya.
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) } }
Chat
Fitur chat dapat menjadi komponen penting dalam game multiplayer. Luangkan waktu untuk memikirkan cara pengguna berinteraksi dengan fitur chat game Anda saat bermain. Khususnya, jika mereka bermain dengan keyboard, mereka tidak perlu menggunakan mouse atau layar sentuh untuk mengakses chat atau mengirim pesan.
Salah satu pola yang dapat digunakan adalah membuat tombol keyboard memfokuskan kotak chat, dan menangani tombol enter untuk mengirim pesan.
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) } }
Lihat dokumentasi keyboard di halaman kompatibilitas input Android.
Dukungan stilus
Aplikasi menggambar dan game berbasis geser dapat memanfaatkan input stilus di perangkat ChromeOS. Lihat halaman input stylus untuk mengetahui detail selengkapnya.
Pengontrol game
Chromebook mendukung hingga empat pengontrol game. Developer harus menggunakan API Pengontrol Game Android standar untuk mendukungnya.
Tombol dipetakan ke nilai umum setelah pemetaan umum. Sayangnya, tidak semua produsen pengontrol game mengikuti konvensi pemetaan yang sama. Mengizinkan pengguna memilih dari berbagai pemetaan pengontrol populer dapat memberikan pengalaman yang jauh lebih baik.