Menggunakan Kontrol Sentuh dan Mendeteksi Keberadaan Layar Sentuh di Construct 2

Bagus Aji Santoso 15 November 2017

Menggunakan Kontrol Sentuh dan Mendeteksi Keberadaan Layar Sentuh di Construct 2

Dewasa ini naif rasanya jika kita mengasumsikan pengguna yang ada di web hanya menggunakan mouse dan keyboard saja. Dalam dunia web yang modern, lebih banyak orang melakukan browsing menggunakan perangkat berlayar sentuh seperti iPhone, iPad, dan Android. Jika game kita hanya dapat digunakan menggunakan mouse dan atau keyboard saja, pengguna yang ada di perangkat-perangkat tadi secara otomatis tidak bisa memainkan game kita!

Tapi tenang saja, menyiapkan kontrol sentuh tidak sulit dan ada sebuah trik sederhana untuk mendeteksi apakah pengguna menyentuh layar atau tidak.

Menggunakan Mouse Untuk Sentuhan

Pertama, jika kita membuat game yang hanya ditargetkan untuk perangkat sentuh atau hanya menggunakan klik mouse, gunakan objek Touch. Atur properti Use mouse input menjadi Yes. Sekarang klik pada mouse akan memiliki event seperti On touch start dan Is in touch. Sehingga klik menjadi sentuh, dan drag and drop menjadi event swipe.

Untuk game-game sederhana, pengaturan tadi sudah cukup.

On-screen touch controls

Untuk banyak game, tombol yang ada di layar sangat diperlukan sebagai kontrol (bayangkan Mobile Legends). Tombol-tombol ini dapat dibuat menggunakan objek Sprite.

Pertama, jika belum ada, tambahkan layer non-scrolling (kita tentu tidak mau tombolnya keluar dari layar saat player bergerak). Buat sebuah layer baru dan atur Parallax-nya menjadi 0, 0. Pengaturan ini akan mencegah objek yang ada di layer tersebut keluar dari layar dan akan selalu tampil ditempat yang sama.

Sekarang, pastikan layer tersebut sedah terpilih. Titik yang ada di pojok kiri atas dari layout kita menampilkan ukuran window. Tambahkan beberapa Sprite yang menggambarkan on-screen control di area window. Contoh tombol panah yang dibuat dibagian kanan bawah dari window adalah sebagai berikut.

Touch controls

Ingat, tombol yang besar lebih mudah disentuh! Kita mungkin juga perlu mengatur collision polygon di image editor untuk membuat areanya lebih besar sehingga lebih mudah di sentuh.

Sekarang kita bisa menggunakan aksi Is touching object milik objek Touch untuk memanggil aksi Simulate control seperti pada gambar:

Touch control event

Sekarang kita sudah memiliki on-screen control yang akan selalu berada di tempat yang sama dan dapat mengontrol bagaimana pengguna memainkan game ita.

Jika game kita menggunakan kontrol kanan-kiri sederhana kita bisa mendeteksi jika pengguna menyentuh bagian kiri atau bagian kanan layar (bayangkan game balap mobil atau motor). Ingat, semakin besar area yang dapat mereka sentuh, semakin mudah pula untuk mengontrol game.

Alternative touch controls

Ada banyak cara lain untuk mengontrol game di perangkat berlayar sentuh. Kita tidak harus selalu menggunakan on-screen control dan terkadang alternatif lain justru lebih fun dan lebih mudah. Berikut dua saran cara lain yang bisa dipakai:

  1. Sentuh di sekitar pemain untuk menggerakkannya. Daripada menggunakan tombol panah di layar, misalnya di game Space Blaster, pesawat akan bergerak kearea yang kita sentuh. Tombol yang ada di layar dapat memberikan aksi alternatif misalnya menembakkan roket.
  2. Gunakan accelerometer untuk melakukan pergerakan. Dalam objek Touch, kita bisa mengambil nilai-nilai ekspresi Alpha, Beta, dan Gamma. Nilai ini memungkinkan kita untuk mendeteksi kemiringan layar berdasarkan sumbu tertentu sehingga bisa mengakibatkan sebuah pergerakan (Ingat Asphalt?).

Kontrol sentuh tentu tidak wajib dipakai apalagi jika memang game kita hanya menargetkan pengguna PC. Namun, penambahan kontrol sentuh bisa membuat game kita menjadi lebih menyenangkan utuk dimainkan dan tentu saja menambah jumlah pengguna yang dapat memainkannya.

Mendeteksi Keberadaan Layar Sentuh

Setelah kita memiliki on-screen touch controls. Bagaimana jika pengguna yang membukanya hanya memiliki mouse dan keyboard? Tentu saja menampilkan tombol sentuh di layar yang terlalu besar tidak ada gunanya. Beruntung, ada sebuah teknik sederhana yang bisa digunakan untuk mendeteksi apakah pengguna menggunakan layar sentuh atau tidak. Caranya sangat sederhana yaitu menggunakan title screen.

Di title screen kita memiliki sebuah pesan misalnya Press anything to continue. Lalu, jika event yang dipanggil adalah On any key pressed (jika menggunakan keybaord) atau On any click (jika menggunakan mouse) artinya pengguna sedang menggunakan komputer desktop. Jika ternyata yang dipanggil adalah On touch start milik objek Touch maka kita tahu bahwa pengguna tersebut sedang menggunakan layar sentuh. Kemudian kita bisa membuat variabel global yang bisa dipakai untuk menampilkan tombol on-screen atau menghilangkannya.

Touch controls and a trick to detect input method originally published by Ashley