Bagaimana saya bisa membuat gerakan koordinat kutub yang ramah pengguna di sekitar lingkaran?

23

Saya sedang mengerjakan game 2D di mana Anda mendarat di planet dengan kapal dan bisa keluar dari kapal dan berjalan-jalan.

Planet-planet ini sangat kecil (kadang-kadang ~ 350 pixel radius), dan terlihat dari samping. Sehingga Anda dapat dengan mudah melihat seluruh planet di layar secara umum.

Ini mungkin agak membingungkan jadi inilah gambarnya: game luar angkasa

Saya menggunakan tombol A dan D untuk masing-masing bergerak berlawanan arah jarum jam dan searah jarum jam. Masalahnya adalah jika Anda berada di "atas" planet (bagian atas), ini masuk akal: A bergerak ke kiri, D bergerak ke kanan. Namun, jika Anda berada di "bawah" planet (bagian bawah), A bergerak ke kanan, dan D bergerak ke kiri.

Ada ide tentang bagaimana saya bisa membuat ini lebih ramah pengguna?

MCMastery
sumber
21
Sudahkah Anda bertanya kepada pengguna apakah ini membingungkan? I for one tentu tidak - Anda menekan kanan untuk memindahkan karakter Anda ke kanan dan kiri untuk memindahkan karakter Anda ke kiri dari perspektif karakter Anda . Ini jauh lebih baik daripada, katakanlah, mengubah tombol di tengah belokan (jika Anda berencana untuk melakukan itu).
Charanor

Jawaban:

38

Saran pertama saya adalah tetap dengan A= berlawanan arah jarum jam dan D= gerakan searah jarum jam. Itu tidak terlalu membingungkan dan cukup banyak "standar" (yaitu paling umum) pilihan ketika datang ke gerakan orbital seperti ini.

Cara lain adalah dengan mengubah cara permainan Anda bergerak. Alih-alih memindahkan pemain saat mereka berada di sebuah planet, Anda bisa memutar planet itu. Ini juga merupakan pilihan yang sangat umum tetapi dapat membingungkan jika Anda memiliki beberapa planet di layar karena semuanya kecuali pemain harus diputar. Jika Anda memutuskan untuk menggunakan metode ini, itu bisa membantu untuk hanya menampilkan bagian dari planet ini untuk mengurangi jumlah objek bergerak yang harus dilacak oleh mata Anda:

bagian atas planet saja

Jika Anda bebas menggunakan mouse, Anda selalu dapat menggunakan klik mouse untuk bergerak. Mengklik pada lokasi akan menyebabkan pemain bergerak menuju titik itu dan secara otomatis akan memilih arah terpendek. Lingkaran adalah "klik" dan panah adalah arah terpendek.

arah terpendek untuk klik

Sebagai bonus tambahan, juga sangat mudah untuk menerjemahkan ke kontrol Seluler jika Anda juga ingin mempublikasikan game Anda sebagai aplikasi.

Charanor
sumber
3
Jika pergi dengan gerakan kamera, saya sarankan membuatnya sedikit ketinggalan, jika Anda ingin menekankan arah yang Anda tuju dan kecepatan. karakter Anda akan tampak miring 5 atau 10 derajat ke arah yang Anda pindahkan.
satibel
16

Ketika karakter keluar dari kapal, reorientasi pandangan sehingga karakter berada di atas planet ini, dan kemudian gerakkan pandangan dengan karakter saat mereka berjalan. Dengan cara ini karakter selalu berada di atas sehubungan dengan pandangan ketika berada di sebuah planet, sehingga kontrol kiri / kanan dapat tetap konsisten di mana pun Anda mendarat.

ricksmt
sumber
3
Ini bisa menjadi sangat membingungkan jika Anda tidak berhati-hati.
Beefster
11

Salah satu pendekatan (sering digunakan dalam game orang ketiga dengan gerakan berbasis tongkat yang juga memiliki kamera non-statis) adalah menetapkan kerangka acuan untuk gerakan setiap kali input dimulai (dalam kasus Anda, saat tombol ditekan) dan tetap kerangka pergerakan itu sampai input berakhir (kunci dilepaskan). Ini berarti "A" kunci akan selalu memindahkan karakter "ke kiri," apa pun itu - searah jarum jam jika itu di bagian bawah lingkaran, sebaliknya berlawanan arah jarum jam - sampai kunci dilepaskan.

Sayangnya, karena Anda dibatasi pada lingkaran, teknik ini akan tetap berantakan ketika karakter berada di atau dekat ekstrim kiri atau kanan dari lingkaran. Anda dapat membuatnya berfungsi hanya dengan memilih secara sewenang-wenang ke arah mana untuk masuk, tetapi pengguna mungkin merasa membingungkan. Mungkin lebih membingungkan bahwa hanya bertahan dengan pendekatan "A selalu berlawanan arah" yang Anda miliki sekarang.

Josh
sumber
6
Ketika di sebelah kanan lingkaran, S harus bergerak searah jarum jam.
user253751
1
Saya tidak memikirkan itu karena OP hanya menyebutkan dua kunci, tapi itu ide yang bagus.
Josh
1
Penting juga untuk mempertimbangkan kontrol stick analog, di mana model kontrol ini terasa yang terbaik.
Beefster
10

Saya sarankan Anda melihat konsep serupa tetapi kemudian di 3d: Super mario galaxy.

tangkapan layar super mario galaxy https://youtu.be/_8eJC4gIAm4?t=19m

Pada gerakan singkat bingkai referensi tetap sama, alam semesta tidak bergerak, melampaui ambang batas tertentu yang dilalui alam semesta / bergeser sepanjang sehingga kerangka referensi kembali di tengah.

Anda mungkin ingin "mengaburkan" alam semesta saat bergerak sehingga terlihat lebih alami dan mata tidak akan fokus pada posisi bergerak yang bergerak.

Saya berasumsi bahwa Nintendo menginvestasikan cukup banyak penelitian untuk mendapatkan permainan bermain semulus mungkin dan ini adalah apa yang mereka setujui. Saya selalu suka melihat apa yang perusahaan besar pikirkan, berharap mereka menginvestasikan sesuatu dalam R&D untuk kenyamanan dan pemutaran maksimal.

Tschallacka
sumber
7

Gunakan A/ Duntuk memindahkan karakter ke arah paling kiri / paling kanan dari planet ini, dan W/ Suntuk memindahkan karakter ke titik paling atas / paling bawah.

Dengan cara ini, pemain selalu menggerakkan karakter ke arah yang sama dengan gerakan input - mis. DSelalu bergerak ke kanan, Sselalu bergerak ke bawah, terlepas dari posisi karakter.

Gim ini bisa terus bergerak ke arah jam yang sama saat tombol ditekan, atau menghentikan karakter di titik pembatas. Jika berhenti, sepertinya bukan masalah besar - pemain memiliki kuadran penuh untuk mengubah input mereka jika mereka ingin terus berjalan ke arah jam yang sama.

Selain itu, surat edaran W- A- S- Datau W- D- S- Apola hasil masukan dalam mengelilingi planet, yang tampaknya cukup intuitif.

Menahan lebih dari satu tombol dapat menyebabkan kunci yang paling baru ditekan untuk diutamakan, atau Anda dapat menggunakan perilaku yang lebih kompleks seperti memiliki delapan titik pembatas.

AlliedEnvy
sumber
1
Inilah yang akan saya sarankan setelah bermain Super Mario Odyssey . Namun, karena perubahan skema kontrol itu adalah cukup unintuitive pada awalnya. Jika itu adalah skema kontrol utama Anda, mungkin itu tidak akan menjadi masalah
Kaiged
3

Ini adalah salah satu dari dua masalah "model mental" klasik yang diderita oleh banyak game.

Setiap pemain mengembangkan "model mental" untuk bagaimana game mengontrol peta ke aksi game. Karena permainan menjadi semakin mirip dalam kontrol mereka dari waktu ke waktu, orang-orang mulai mengharapkan model mental mereka yang berlaku untuk diterapkan pada permainan baru, daripada mengembangkan model terpisah untuk permainan yang berbeda. Yang akan baik-baik saja, kecuali bahwa tidak setiap pemain memiliki model mental yang sama tentang bagaimana kontrol harus bekerja.

Sebagai contoh, masalah klasik "mental model" lainnya adalah apakah menekan joystick (biasanya tongkat analog kanan gamepad) harus berarti melihat ke atas , atau apakah itu berarti memiringkan ke depan (yaitu: melihat ke bawah ). Tidak ada model yang benar secara objektif , tetapi sebagian besar pemain hanya menyimpan satu dari dua kemungkinan pemetaan ini di kepala mereka, dan akan terlempar jika permainan melakukan sesuatu yang berbeda dari yang mereka harapkan.

Pertanyaan Anda persis dilema yang sama; masalah "model mental" di sini adalah apakah mendorong langsung pada tongkat kontrol berarti "pindah ke kanan karakter" (seperti dalam Resident Evil), atau "bergerak ke arah kanan layar" (seperti pada Mario). Atau dalam hal ini, "gerakkan searah jarum jam" (seperti dalam Tempest, saat menggunakan konversi tradisional dari paddle ke kontrol joystick).

Setiap pemain akan memiliki model bawaan yang biasa mereka enggan untuk berubah (atau mengalami kesulitan mengubah). Dalam masalah "model mental" semacam itu, Anda memiliki tiga opsi untuk bagaimana menangani masalah:

  1. Sebagai pengembang, Anda memilih model mana yang terbaik untuk gim Anda, dan menggunakannya. Abaikan keluhan orang yang memiliki masalah dengan model yang Anda pilih; mereka hanya harus beradaptasi. Dan jika gim Anda cukup meyakinkan, mereka akan melakukannya.
  2. Terapkan kedua model yang mungkin, dan biarkan pemain memilih yang mana yang ingin mereka gunakan.
  3. Rancang ulang game untuk memastikan bahwa pemetaan kontrol-> aksi game tetap sama, tidak peduli model mental mana yang digunakan seseorang.

Opsi 3 ("mendesain ulang gim agar model mental tidak saling bertentangan") dalam hal ini berarti memutar kamera dengan pemain, sehingga pemain selalu tampil tegak di layar. Dengan begitu, "kanan berarti searah jarum jam" dan "kanan berarti pergi ke sisi kanan layar" selalu selaras; tidak ada konflik lagi dan pemain tidak akan menjadi bingung tergantung pada model mental mereka tentang bagaimana kontrol seharusnya bekerja.

Opsi 2 berarti menerapkan kedua gaya kontrol; satu tempat mendorong kanan membawa Anda ke sisi kanan layar, satu di mana mendorong kanan membawa Anda searah jarum jam, dan memiliki layar opsi di mana pemain dapat memilih gaya kontrol mana yang ingin mereka gunakan.

Pilihan apa pun di sini valid; opsi yang berbeda hanya membutuhkan jumlah pekerjaan yang berbeda dan memberikan batasan yang berbeda pada gim Anda. Jika benar-benar penting bagi Anda agar pemain terlihat bergerak di sisi "bawah" planet ini, baik karena alasan tematik atau artistik, maka Anda tidak ingin menggunakan opsi 3, dan harus menggunakan 1 atau 2. Jika tidak, maka opsi 3 mungkin merupakan pilihan ideal.

Catatan implementasi minor untuk gaya kontrol "mendorong joystick ke kanan berarti bergerak ke sisi kanan layar": Saat menerapkan gaya kontrol ini, Anda harus melakukannya dengan memetakan arah joystick ke pilihan searah jarum jam / berlawanan arah jarum jam, dan kemudian pertahankan keputusan searah jarum jam / berlawanan arah jarum jam sampai joystick bergerak lagi, bahkan saat pemain bergerak ke sisi bawah planet ini. Yaitu, menekan ke kanan saat berada di atas planet, atau ke bawah saat berada di sisi kanan sebuah planet, masing-masing akan mulai karakter bergerak searah jarum jam, dan karakter kemudian akan terus bergerak searah jarum jam bahkan di sekitar bagian bawah planet hingga pemain bergerak joystick lagi, bahkan jika mereka pindah ke bagian planet di mana arah joystick itu sekarang akan ditafsirkan sebagai arah yang berbeda.

Teknik ini sering disebut "mengunci" kontrol joystick, dan umumnya digunakan dalam game 3D ketika kamera melakukan rotasi mendadak (yang Anda tidak ingin menyebabkan pemain tiba-tiba mengubah arah), tetapi juga dapat berguna di sini di gim 2D, jika gerakan kamera membuat input pemain yang tidak dimodifikasi tiba-tiba berarti sesuatu yang berbeda dari sebelumnya.

Trevor Powell
sumber
1
Apakah menggesekkan bantalan sentuh laptop saya dengan dua jari ke atas, atau ke bawah? Jika saya menggunakan perangkat seluler, itu akan naik (karena jari saya dan halamannya 'terhubung') tetapi arah yang sama pada mouse akan turun ... Saya merasa ini terputus setiap kali saya menggunakan Mac ...
Draco18s
@ Draco18s Itu contoh bagus lainnya! Windows menganggap bahwa input gulir ke bawah berarti melihat lebih jauh ke bawah dalam dokumen , sementara Apple menganggap bahwa input gulir ke bawah berarti memindahkan dokumen itu sendiri ke bawah (yang berarti bahwa kita melihat lebih banyak ke bagian atas dokumen). Tetapi pada OS desktop, Apple tahu bahwa banyak orang memiliki model mental lain tentang cara kerja input gulir, dan karenanya mereka menerapkan keduanya dan membiarkan setiap pengguna memilih yang mereka inginkan. .
Trevor Powell
Ya, Anda dapat mengubahnya, saya hanya tahu begitu banyak orang yang telah mengaturnya secara default ("pindahkan dokumen ke bawah"). Heck, laptop windows yang saya dapatkan untuk bekerja sebulan yang lalu memiliki itu sebagai default. Saya mematikannya dengan cepat (saya mengaktifkan fitur "pengguliran tepi", tetapi saya pikir saya akan mematikannya lagi karena terlalu lambat: serius, ketinggian penuh dari area gulir menggulir .... lima baris. ...)
Draco18s
2

Gunakan W / S / A / D untuk input (atau atas / bawah / kiri / kanan). Perlakukan input sebagai arah 8 arah (termasuk diagonal).

Kemudian pindahkan pemain ke arah mana pun yang valid (searah jarum jam atau berlawanan arah jarum jam) paling dekat dengan arah yang ditekan.

pengguna253751
sumber
Saya pikir solusi ini akan lebih cocok dengan joystick daripada keyboard, tapi itu masih merupakan solusi yang mungkin, namun saya akan memilihnya sebagai pilihan, karena harus menggerakkan jari-jari Anda dalam lingkaran pada wasd bisa sangat sulit di tangan jika bermain lebih dari satu jam.
satibel
2

Salah satu opsi bukannya mendefinisikan hubungan antara kunci dan arah gerakan, untuk memiliki:

  • satu kunci untuk bergerak "maju" (dalam arah pemilihan saat ini)
  • satu kunci untuk "berbalik" (beralih arah)

Ini membutuhkan karakter untuk memiliki "arah" yang terlihat jelas.

Tidak yakin itu benar-benar jauh lebih masuk akal daripada opsi lain di sini, tetapi untuk berjaga-jaga ....

jcaron
sumber
1

Turun adalah tempat gravitasi. Jadi ketika karakter pemain berada di sebuah planet, putar kamera bersamaan dengan pergerakan karakter pemain sehingga karakter tersebut selalu berada di atas planet ini.

Tetapi sementara ini membuat navigasi di planet ini lebih mudah, itu mungkin membingungkan pemain relatif terhadap benda langit lainnya. Ini adalah tradeoff yang harus Anda putuskan sendiri.

Philipp
sumber
1

Jika Anda memilih untuk menggunakan gerakan searah jarum jam / berlawanan arah jarum jam, ada sejumlah hal yang dapat Anda lakukan untuk membuat sistem lebih mudah intuisi untuk pemain Anda.

Berikan karakter arah yang dapat dibedakan menonjol

Jika karakter setengah biru dan setengah merah, maka orientasi menjadi mudah untuk diingat pemain. Alih-alih harus mengidentifikasi "searah jarum jam" atau "berlawanan arah jarum jam", para pemain bergerak ke arah biru atau ke arah merah. Jika karakter selalu menghadap ke satu arah (lebih disukai searah jarum jam, sehingga gerakan paling intuitif saat tegak) itu lebih baik, karena penutur bahasa Inggris (dan siapa pun dengan bahasa kiri-ke-kanan) secara alami cenderung mengaitkan 'benar' dengan 'maju', memperkuat koneksi antara kontrol dan arah gerakan.

Jangan biarkan karakter berhenti bergerak

Selama Anda memindahkan karakter Anda, mudah untuk mempertahankan orientasi apa yang ada di kontrol Anda. Lagi pula, terus bergerak ke arah yang Anda bergerak tidak mengambil tindakan sama sekali, dan ketika Anda ingin membalikkan gerakan Anda , hanya ada satu kunci lain untuk dipilih. Hanya ketika Anda mulai bergerak lagi setelah berhenti Anda dihadapkan dengan pilihan. Semakin lama Anda berhenti, semakin sulit untuk mengambil kembali berdasarkan apa yang Anda lakukan sebelumnya. Dengan mengurangi frekuensi jeda dan panjang jeda, Anda dapat mencegah pemain lupa cara bergerak.

Lupus Arcanist
sumber
0

Ada beberapa pendekatan untuk ini.

1) Bagaimana saya akan mendekati ini akan mengambil bagian dari planet ini: sisi atas, kiri, kanan, dan bawah (lebih jika diinginkan). Dan memilikinya setelah pengguna menekan arah, karakter akan terus ke arah itu sampai mereka melepaskan tombol itu. Jadi jika karakter berada di sisi kiri dan pengguna menekan ke atas, maka karakter akan berjalan dengan bijaksana sampai rilis. Dengan cara ini Anda tidak perlu khawatir tentang perubahan dalam kerangka referensi saat karakter bergerak, hanya setelah.

2) Cara lain akan menyukai bagaimana "Pecinta dalam ruang-waktu berbahaya" mendekatinya. Dengan joystick, alih-alih memiliki kerangka referensi tergantung pada permukaan, mereka memilikinya sehingga sudut joy-stick adalah tempat yang diinginkan untuk "karakter" berhenti. Jadi kerangka acuan mereka adalah di pusat "planet" mereka. Saya katakan karakter dan planet tetapi mereka memiliki bagian-bagian kapal modular di luar di mana Anda menentukan ke mana mereka pergi, yaitu ke arah mana pendorong diarahkan untuk memindahkan kapal.

3) Bagaimana Anda mendesainnya sekarang. Itu bisa sedikit digunakan juga, tetapi tidak ada pemain yang belum melihat sebelumnya. Anda dapat mengeditnya sehingga kelihatannya planet ini berputar sebagai gantinya sehingga permainan selalu "di atas".

Kode Eyez
sumber