Saya telah melihat game ini
Celana Fancy 2 . Dan hal yang saya perhatikan selain dari fisika dan animasi yang indah adalah karakternya bergerak di sepanjang lereng, bahkan lereng yang melengkung. Saya memiliki sedikit pengalaman dalam Box2d, tetapi konsep lereng melengkung ini baru bagi saya. Ini akan sangat membantu saya jika seseorang memberi tahu saya tentang konsep ini dan implementasinya. Bahkan jika implementasi tidak di box2d, itu disambut baik
Jawaban:
Bagaimana Anda mendapatkan kurva di Box2D?
Dalam versi Box2D yang belum dirilis , ada dua tipe bentuk baru, b2LoopShape dan b2EdgeShape , yang memungkinkan Anda membuat kurva dari urutan segmen garis.
Dalam versi yang dirilis, Anda dapat menggunakan beberapa kotak kecil yang diatur pada sudut untuk mendapatkan efek yang sama, tetapi tubuh cenderung melakukan hal-hal yang tidak stabil dan tidak terduga di dekat titik koneksi. Jadi saya akan merekomendasikan menggunakan versi yang belum dirilis.
Bagaimana bisa karakter jatuh kurva?
Buat karakter menjadi roda! Pertanyaan saya tentang fisika platformer memiliki beberapa diskusi tentang ini , tetapi ide dasarnya adalah untuk memasang tubuh karakter Anda pada roda yang berputar, dan bergerak dengan menerapkan kekuatan rotasi ke roda. Meskipun (sebenarnya, karena) roda memiliki gesekan, gaya ke bawah dari gravitasi akan menyebabkannya berputar menuruni lereng - seperti roda nyata. Dengan mengubah parameter motor sambungan revolute , Anda dapat membuatnya menahan rotasi sebanyak yang diperlukan untuk menghindarkannya dari tanjakan kecil.
sumber
Fancy Pants dibuat dalam Flash, dan Flash memiliki metode khusus yang disebut 'hitTest' yang memungkinkan Anda untuk menguji piksel (dalam hal ini, ia mungkin melakukan 2-3 pixel hitTests di sepanjang bagian bawah karakter Fancy Pants) terhadap apa pun yang diambil dalam objek klip video yang ditunjuk. Mungkin agak sulit untuk membuatnya terasa benar, tetapi fungsi bawaan ini adalah mengapa begitu banyak game Flash bertabrakan dengan lereng melengkung. Prosesnya jauh lebih rumit untuk kebanyakan mesin lain, dan biasanya harus dilakukan secara manual, tetapi ada beberapa metode yang berbeda.
Metode yang paling saya kenal adalah jika mesin Anda berbasis ubin (pikirkan Sonic the Hedgehog), ubin yang ditunjuk sebagai melengkung masing-masing dapat memiliki rumus yang menentukan posisi tabrakan 'Y' berdasarkan posisi karakter 'X' saat ini. di ubin itu. Anda harus menentukan formula berdasarkan seberapa curam lereng dan seberapa tinggi kurva yang Anda cari. Anda dapat menggunakan kalkulator grafik atau program grafik untuk bereksperimen dengan formula. Anda dapat memiliki beberapa ubin dengan kurva dan rumus berbeda yang dikaitkan dengannya dengan cara ini.
sumber