Bagaimana cara menangani lompatan lereng dalam game pelari?


8

Dalam pelari tanpa ujung 2D, apa yang harus terjadi ketika pemain berlari "terlalu cepat" menaiki lereng dan melompat?

Misalnya, dalam kasus "normal":

    .O.
   . __..O_____
  . /
 . /
 O/
_/

Jika dia bergerak ke kanan cukup lambat, dia akan melompat ke atas dan mendarat di bagian datar permukaan. Namun, jika dia bergerak terlalu cepat, lompatannya tidak akan berpengaruh karena gerakan ke depannya akan mengembalikannya ke lereng sebelum dia bisa cukup tinggi untuk melewatinya. Ketika kecepatannya cukup tinggi, secara efektif tidak akan ada lompatan.

     _________
    /
 .O/
 O/
_/

Apakah ada cara yang diketahui untuk mengatasi masalah ini? Saya tahu ini benar secara fisik *, tetapi adakah teknik yang digunakan game lain untuk mengatasinya dengan cara yang masuk akal?

Sebagai upaya terakhir saya harus menghapus semua lereng yang terlalu miring.

* Jika Anda memaksa pemain untuk tidak pernah melompat mundur.


Sepertinya transisi dari tanah datar ke bukit curam akan memperlambat pemain cukup untuk membuat lompatan. Jika mereka ingin mempertahankan kecepatan mereka, mereka akan melompat sebelum lereng. Hanya FYI, saya pikir pertanyaan Anda adalah jenis pertanyaan "bantu saya memutuskan", membuatnya menjadi semacam pendapat.
MichaelHouse

@ Byte56 Mungkin beberapa pendapat mungkin masuk campuran, tapi saya pikir ini masih pertanyaan yang bagus. Beberapa pertanyaan terbaik di situs ini memiliki pendapat tentang mereka. Jawaban yang bagus mungkin menunjukkan solusi yang dikirim.
kevintodisco

@ ktodisco Saya setuju, jawabannya bisa mengubah pertanyaan perbatasan menjadi yang hebat. (Meskipun contoh terakhir Anda sudah ditutup, memang demikian).
MichaelHouse

Satu kemungkinan, yang saya pikir telah saya lihat (saya tahu itu tidak terlalu meyakinkan) mungkin untuk membuat arah lompatan relatif terhadap sudut tanah di bawah Anda- jadi melompat pada kemiringan ke bawah akan memberi Anda momentum ke depan, tetapi tidak melompat setinggi, sementara melompat pada kemiringan ke atas akan mengirim Anda lebih tinggi dengan momentum ke depan berkurang (anggap lompatan sebagai mendorong dari tanah)
Tin Wizard

@ Amadeus9 itu poin yang bagus, tapi saya pikir dalam kasus khusus ini saya tidak akan berlaku. Mengurangi kecepatan ketika melompat masih akan berakhir menciptakan tabrakan lereng, karena kecepatan meningkat tanpa batas.
you786

Jawaban:


11

Berikut adalah beberapa contoh bagaimana permainan (pelari atau yang lain) menangani situasi ini. Tidak ada yang "terbaik" dan Anda masih harus memutuskan mana yang tepat untuk gim Anda.

Cara "benar" secara fisik (impuls vertikal)

Untuk melompat, Anda menambahkan impuls vertikal (merah) ke kecepatan gerakan Anda (hijau) . The kecepatan yang dihasilkan (biru) akan selalu membawa Anda di atas lereng, sehingga selama lereng Anda tidak mendapatkan terlalu banyak curam segera, karakter Anda akan selalu melompat di atas lereng.

sayap kecil

Peringatannya adalah jika karakter Anda berpacu menanjak, Anda sekarang dapat melompat sangat tinggi.

Melompat tegak lurus (Sonic)

Saat melompat, dorongan lompatan Anda berada pada arah (merah) tegak lurus dengan kemiringan (hijau) . Anda mungkin ingat perilaku ini dari game Sonic.

Sonik

Peringatannya adalah bahwa pada lereng yang sangat curam, Anda sering berakhir melompat mundur.

Tidak ada lompatan di lereng

Mungkin Anda memutuskan bahwa lereng itu agak istimewa dan tidak masuk akal untuk melompatinya. Misalnya, tangga adalah jenis kemiringan khusus, yang dalam beberapa permainan Anda tidak bisa melompat sama sekali.

castlevania 3

Peringatannya adalah, setiap kali Anda mengambil kendali dari pemain seperti ini, Anda harus mengomunikasikan harapan dengan jelas, jika tidak, pemain bisa frustrasi. Misalnya, Castlevania menggunakan animasi "memanjat tangga" khusus untuk memperjelas bahwa itu adalah jenis gerakan khusus.

Tidak berjalan di lereng curam

Opsi lain adalah membuatnya tidak mungkin untuk mendaki lereng yang terlalu curam - pemain meluncur ke bawah seolah-olah itu adalah rintangan seperti dinding. Karena mereka jatuh atau meluncur ke bawah, jelas mereka tidak bisa melompat selama waktu ini juga.

Tidak ada lereng curam (atas)

Anda bisa mengambil jalan keluar yang mudah dan sepenuhnya menghilangkan lereng yang akan memberi Anda masalah seperti itu. Ini bukan ide yang buruk, karena berjalan di lereng tidak menyenangkan; berjalan menuruni lereng jauh lebih menyenangkan!

ski safari

Tidak ada lereng (jawaban Mu)

Ketika datang ke gameplay, saya penggemar desain minimalis - seperti kata pepatah, "kesempurnaan akhirnya tercapai bukan ketika tidak ada lagi yang ditambahkan, tetapi ketika tidak ada lagi yang bisa diambil". Apakah lereng berfungsi sebagai tujuan permainan yang bermanfaat, atau hanya terlihat bagus - artinya menyenangkan ? Lagipula, baik-baik saja untuk memiliki pelari tanpa lereng sama sekali.

canabalt


Terima kasih atas jawaban terinci. Sebagai catatan, saya akhirnya menghapus semua lereng yang terlalu curam.
you786

1

Untuk siapa pun yang menemukan ini, saya mengatasinya dengan memiliki jumlah minimum frame yang harus lulus dalam animasi lompat sebelum tabrakan dengan bukit terdaftar. Dengan begitu Anda memiliki masa tenggang untuk memungkinkan karakter bangun sedikit tanpa khawatir tentang tabrakan lereng.


-1

Raycast adalah ide yang baik, Anda dapat menggunakan ray juri apakah itu kemiringan, maka Anda dapat mengontrol kecepatan dengan mengubah kecepatan pemain.


Anda dapat secara signifikan meningkatkan jawaban ini dengan menjelaskan caranya .
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.