Apa metode input yang cocok untuk digunakan untuk platformer 2D pada perangkat sentuh?

16

Saya membuat game platformer 2d seperti Super Meat Boy di mana ketepatan pergerakan karakter utama saya penting. Saya menggunakan libgdx. Kontrol keyboard pada PC bekerja dengan tepat, tetapi ketika menyangkut penanganan accelerometer, sangat sulit untuk menangani karakter dengan tepat. Ini memburuk secara bertahap dengan jalur aman yang macet untuk melarikan diri. Saya berpikir untuk mengimplementasikan bola analog di layar untuk menangani input, tetapi membaca banyak konsekuensi buruk di internet.

Apa metode input yang intuitif namun tepat untuk digunakan untuk game platformer pada perangkat sentuh?

Rahul Verma
sumber

Jawaban:

7

Dalam satu kata: Menggesek.

Saya memainkan edisi kejuaraan Pac-Man di ponsel Android saya dan apa yang saya pikir benar-benar berhasil adalah ketika ada joystick di layar, Anda tidak perlu menyentuhnya untuk menggerakkan Pac-Man ke arah yang benar. Jika jari Anda jatuh dari joystick itu tidak masalah. Yang penting adalah ke arah mana Anda menggerakkan jari Anda.

Untuk naik, geser ke atas. Untuk bergerak ke bawah, geser ke bawah. Untuk bergerak ke kiri, geser ke kiri. Untuk bergerak ke kanan, geser ke kanan.

Anda bisa dengan mudah membuat konteks swiping peka terhadap wilayah layar dan tindakan yang saat ini terjadi dalam game. Bayangkan ponsel Anda dalam mode lansekap dan Anda memegangnya seperti pengontrol permainan video. Setengah bagian kiri layar dapat digunakan untuk gerakan menggunakan menggesek yang saya jelaskan di atas. Setengah bagian kanan layar dapat digunakan untuk tindakan seperti melompat, menembak, melindungi, apa pun kemampuan bermain game yang Anda ingin berikan kepada pemain Anda menggunakan menggesek dengan cara yang sangat mirip. Atau jika Anda hanya memiliki satu kemampuan (seperti melompat di Super Meat Boy) - perlakukan saja bagian kanan layar sebagai tombol.

Memperbarui

Kami sedang mendiskusikan ini dalam obrolan dan tampaknya solusi saya, cara yang dijelaskan di atas sangat mirip dengan tongkat virtual yang bergerak ketika Anda mengangkat dan meletakkan jari Anda. Saya ingin menjelaskan bahwa ini bukan masalahnya dan sebenarnya jauh lebih fleksibel daripada itu.

Pacman Menggesekkan

Gambar di atas menunjukkan pola gesek yang bisa dilakukan seseorang untuk memindahkan Pacman di papan. Perhatikan bahwa tindakan yang diambil sama sekali tidak didasarkan pada tempat Anda meletakkan jari Anda pertama kali. Jika Anda secara tidak sengaja menggerakkan jari Anda terlalu jauh saat menggesek ke kanan atau tidak cukup saat menggesek ke bawah, tidak apa-apa. Dengan implementasi ini selama Anda menggesek cukup jauh untuk mendaftar dengan benar dengan perangkat lunak itu akan membawanya dan menggunakan di mana jari Anda berakhir sebagai titik awal berikutnya, atau jika Anda mengangkat jari Anda, itu akan menggunakan tempat Anda berikutnya turunkan jarimu.

Seperti yang saya katakan sebelumnya, Anda bisa menerapkan ini pada platformer hanya dengan membagi kontrol menjadi beberapa wilayah sehingga swipe dan tap Anda melakukan hal yang berbeda tergantung di mana pada layar Anda melakukan tindakan. Rute yang jelas adalah membuat gerakan pegangan sisi kiri hanya menggunakan menggesekkan. Kemudian sisi kanan akan digunakan untuk menangani aksi dan kemampuan pemain menggunakan kombinasi gesekan dan ketukan.

Spartan Donut
sumber
4

Bagaimana jika Anda memperlakukan setengah layar seperti bola trek virtual di mana posisi / kecepatan karakter Anda secara langsung terkait dengan bola? Menggesek dan melepaskan akan membuat karakter Anda menjadi gerakan konstan (dan menyebabkan trackball berputar). Memegang jari Anda di layar akan seperti memegang trackball sehingga Anda dapat melakukan sedikit penyesuaian pada posisi karakter Anda, atau menghentikan karakter Anda agar tidak bergerak. Saya pikir ini bisa bekerja dengan baik untuk saat-saat panik di Super Meat Boy di mana Anda mencoba untuk berlari, melompat, lalu berhenti dengan uang receh. Ini akan menjadi pendekatan eksperimental karena saya belum pernah melihat itu dilakukan sebelumnya, tetapi semuanya lebih baik daripada tongkat virtual.

Sunting: Steam Controller menangani trackpad mereka seperti trackball yang disimulasikan, tetapi saya belum cukup bereksperimen untuk menemukan permainan yang memperlakukannya seperti itu.

John McDonald
sumber
Saya sebenarnya sangat suka jawaban ini karena ini semacam pemikiran di luar kotak. Jika ada yang mengimplementasikannya saya akan sangat ingin tahu seberapa baik itu benar-benar berfungsi.
SpartanDonut
2

Saya menemukan sisi-layar sentuh dan tahan kontrol menjadi yang paling responsif.

Jika orang itu menyentuh sisi kiri, lari ke kiri (sampai dia melepaskannya). Jika orang itu menyentuh sisi kanan, lari ke kanan.

RunRunRiot! adalah contoh dari ini.

Sedangkan untuk melompat, Anda bisa melakukan ketukan layar tengah (menggunakan kedua tangan).

Contoh (iPad lansekap) Berjalan dengan benar

______________
|            |
|            |
|            |
|___________R|

Melompat ke kanan

______________
|            |
|L*          |
|            |
|___________R|

(L * = ketuk kiri)

Melompat ke kiri

______________
|            |
|          R*|
|            |
|L___________|
bobobobo
sumber
1

Input terbaik untuk gim layar sentuh yang saya temukan ada pada gim platform yang sangat sederhana itu, yang harus Anda lakukan hanyalah menyentuh layar untuk melompat! Setiap game yang menggunakan accelerometer untuk input gerakan kepada saya sangat membingungkan!

Ini adalah dilema yang umum ketika berkembang pada layar sentuh, jika saja ada lampiran D-pad yang populer. Saya pikir Anda harus mencoba ide bola layar Anda.

Mungkin Anda dapat memiliki input kiri dan kanan di paling kiri dan paling kanan layar dan memiliki atas dan ke bawah menggunakan bagian kiri atau kanan input yang lebih tinggi atau lebih rendah. Saya pikir itu masuk akal?

james82345
sumber
1

Anda dapat mempertimbangkan memiliki kontrol yang lebih tepat hanya ketika karakter pemain mengudara.

Misalnya, jika sisi kanan layar mengontrol arah lateral, Anda bisa memiliki keseluruhan sisi kiri untuk lompat. Setelah mengudara, bagian kiri bawah layar bisa 'turun' dan bagian atas bisa lompat ganda.

Opsi lain adalah mengadopsi skema lompat seperti Jetpack Joyride atau game jenis "Cave", di mana semakin lama Anda memegang "naik" semakin tinggi Anda pergi. Ini memiliki potensi untuk menjadi cukup tepat dan saya pikir akan bekerja dengan baik dengan platformer tipe Super Meat Boy, dengan asumsi level dirancang dengan tepat.

lemah
sumber