Bagaimana saya bisa memprediksi tabrakan pemain-ke-proyektil di Box2D?

8

Saya membuat game menembak real time dengan Box2D sebagai mesin fisika. Gameplaynya sebagian besar tentang lintasan, seperti Angry Birds. Saya ingin membuat efek gerakan lambat dan memindahkan kamera ke pemain ketika dia terbunuh, tetapi efeknya harus dimulai ketika batu masih di udara, sebelum tabrakan benar-benar terjadi.

Besarnya kerusakan hanya dihitung saat tabrakan, berdasarkan pada dorongan. Karena ini adalah permainan waktu nyata, pemain harus dapat menggerakkan tubuh fisika karakter mereka tanpa lag.

Bagaimana saya bisa memprediksi kematian mereka? Apakah itu mungkin? Saya bisa raycast, tetapi bagaimana jika objek lain bergerak untuk memblokir jalannya?

masukkan deskripsi gambar di sini

Arch1tect
sumber
1
Catatan Teoritis: Masa depan sistem non-deterministik menurut definisi tidak dapat diprediksi. Lihat kucing Schrödinger , yang secara mental mengganti "kucing" dengan "karakter pemain".
Anko
1
@Anko ide yang sangat menarik! Saya belum pernah mencobanya. Tetapi pemain masih bisa bergerak sehingga ke mana dia pergi atau seberapa jauh dia pergi tidak bisa diprediksi. Namun saya tahu kecepatan gerakan pemain sehingga ketika batu cukup dekat, saya tahu itu tidak akan ketinggalan ...
Arch1tect
1
(1/2) IMO akan jauh lebih menarik jika Anda menggunakan raycast untuk melihat apakah tabrakan memiliki peluang yang layak terjadi, kemudian mulai zoom kamera dan memperlambat permainan. Untuk setiap bingkai, lakukan ulang pemeran sinar untuk melihat apakah batu masih berada di jalur tabrakan. Jika batu dicegat, kamera seharusnya hanya tampilannya kembali ke keadaan normal, tetapi untuk setiap frame kemungkinan tabrakan, zoom kamera sedikit lebih.
NauticalMile
1
(2/2) Ini akan membunuh dua burung dengan satu batu (permainan kata tidak dimaksudkan): Anda tidak perlu melakukan 'melihat ke masa depan', dan para pemain akan mengalami sensasi nyaris celaka serta langsung (atau merumput) hits. Bahkan, saya bisa berargumen bahwa efek Anda akan menjadi membosankan jika pemain tahu itu, setiap kali kamera memperbesar dan permainan melambat, ia akan hancur. Dia akan ingin melewatkan 'animasi' segera dan coba lagi. Tetapi jika ada kemungkinan dia bisa menghindari batu, Anda bisa bertaruh dia akan menggigit kukunya menunggu untuk melihat hasilnya.
NauticalMile
1
(1/2) @NauticalMile hei, itu ide yang sangat bagus juga !! Saya khawatir itu mungkin tidak secara langsung berlaku untuk permainan saya karena pemain terlalu sering memukul, jadi memperbesar dan memperlambat mungkin mengganggu permainan yang sedang berlangsung terlalu banyak.
Arch1tect

Jawaban:

2

Mengapa menghitung lintasan untuk efek suara / memperlambat?

Jika Anda membagi tindakan melambatkan kamera dan memainkan efek menjadi beberapa bagian saat mendekati korban Anda yang licin maka Anda dapat memainkannya sesuai dengan kedekatannya.

Ini adalah contoh yang bagus yang muncul di pikiran. Kedekatan memperlambat efek yang digunakan di Peggle

Bola mendekati pasak dan mulai melambat. Ini sebenarnya didasarkan sepenuhnya dari kedekatan, tidak ada lintasan yang terlibat. Jika cukup dekat dengan pasak terakhir, ia mulai memutar drum dan memperlambat permainan-play, jika tidak mencapai pasak dan keluar dari jangkauan Anda mendengar "Awww .. :(" dan semua kembali normal, tetapi jika itu bertabrakan, Anda akan mendapatkan layar Overture lengkap dan menang.

Ini adalah teknik yang hebat jika Anda menyetujui untuk membuat pemain Anda pergi "Astaga, aku hampir tertabrak!". Jika Anda memiliki suara / efek start-up untuk cam kematian yang akan bermain sebelum dampak maka cukup memicu ini ketika batu cukup dekat bahwa bahkan jika pemain bergerak dengan kecepatan maksimum ke segala arah - mereka memiliki perubahan besar untuk mendapatkan squished .

Katakanlah batu Anda jatuh dan Anda ingin memulai efek perlambatan hingga ~ 4m dari pemain: Anda mulai dengan memicu perlambatan, gerakkan kamera Anda dan mulai fokus pada pemain - jika batu tersebut kemudian disela oleh puing-puing lain maka cukup keluar dari fokus melambat dan pemain Anda melanjutkan seperti biasa.

masukkan deskripsi gambar di sini

Ini pada dasarnya adalah bagaimana Peggle menangani efek pelambatan mereka dan memicu musik akhir game dan sangat cocok untuk digunakan pada skenario adegan kematian adegan kamera / rock / licin Anda.

Piddock Tom 'Biru'
sumber