Gerakan Konstan 2D Bullet dalam shmup

8

Saya telah mengikuti tutorial pixelnest untuk membuat shmup 2D ( http://pixelnest.io/tutorials/2d-game-unity/player-and-enemies/ ).

Saat mengerjakan ini, saya telah bereksperimen dengan meningkatkan laju penembakan untuk mendapatkan aliran peluru terus menerus, dan saya perhatikan bahwa peluru lebih berjarak jika kapal dipindahkan ke belakang, dan mereka akan menggumpal ketika kapal dipindahkan ke depan. . Apakah ada cara untuk menjaga jarak konstan antara peluru tidak peduli pergerakan pemain?

Haruskah aku peduli? Saya merasa bahwa jika pemain bergerak ke belakang maka laju tembakan pada dasarnya lebih lambat (setidaknya sampai mereka mencapai tepi layar) dan sebaliknya jika Anda bergerak ke depan.

MHTri
sumber

Jawaban:

16

Ini adalah efek Doppler klasik , yang merupakan hal yang cukup normal. Jika Anda bergerak mundur, maka jarak antara peluru adalah normal_distance_caused_by_firerate - ship_backward_distance_passed, tidak maju hanya normal_distance_caused_by_fireratejika kapal diam.

Jika Anda meningkatkan kecepatan peluru, maka efek ini akan lebih sulit untuk diperhatikan, karena jaraknya akan lebih besar dengan sendirinya, dibandingkan dengan kecepatan kapal.

Anda dapat meningkatkan api jika kapal bergerak kembali, dan menguranginya ketika bergerak maju, tetapi ini bukan perilaku normal, dan itu bisa terlihat aneh. Itu juga akan curang pada logika game.

Singkatnya, Anda harus membiarkannya apa adanya, atau mengurangi kecepatan kapal / menambah kecepatan peluru untuk mengurangi perbedaan visual dalam jarak antara peluru saat bergerak maju / mundur.

kreys
sumber
2
+1 untuk efek Doppler. Sebagai kreys menyebutkan ini adalah perilaku yang benar-benar normal dan sesuatu yang dirasakan sebagian besar orang adalah respon alami.
Tom 'Blue' Piddock
Hah, saya sudah membaca tentang efek Doppler tetapi tidak pernah terlintas dalam pikiran saya itu akan berlaku di sini! Adapun 'respon alami', saya lebih khawatir apakah ini akan mempengaruhi keseimbangan gameplay. Itu agak membuat mekanik risiko / hadiah kecil yang menarik (lebih dekat dengan musuh untuk membunuh mereka lebih cepat). Shmups lain (touhou, shmups harta, dll) tampaknya telah mencapai jarak peluru konstan tetapi bisa jadi mereka membuat kecepatan peluru menjadi sangat tinggi sehingga saya tertipu dengan berpikir jarak antara tembakan tetap merata.
MHTri
Anda tidak benar-benar membunuh musuh lebih cepat. Saya pikir Anda masih bingung? Satu-satunya perbedaan dalam membunuh efektivitas adalah "latensi" dari peluru (waktu yang dibutuhkan peluru untuk melakukan perjalanan) karena bandwidth (tingkat api) adalah sama. Jadi pada dasarnya jika Anda lebih dekat itu akan mati lebih cepat hanya karena peluru menempuh jarak yang lebih pendek yang membutuhkan waktu lebih sedikit.
AturSams
Baiklah katakanlah jika saya menyertakan senjata laser, senjata itu tidak akan memiliki waktu tempuh (relatif terhadap senjata berbasis peluru) dan karenanya memberikan kerusakan konstan pada target terlepas dari bagaimana pemain bergerak. Pertanyaan saya pada dasarnya adalah tentang membuat senjata berbasis peluru bertindak seperti laser, karena jika pemain bergerak mundur / maju maka waktu tempuh peluru akan meningkat / berkurang.
MHTri
2
@MHTri Kemampuan Anda untuk mengeksploitasi efek doppler secara alami dibatasi oleh jarak yang tersisa antara Anda dan target. Akhirnya, Anda harus mundur, dan selama waktu itu tingkat efektif tembakan Anda (dari sudut pandang target) berkurang. Semakin cepat Anda bergerak, semakin tinggi laju tembakan, tetapi semakin cepat Anda kehabisan ruang. Itu tidak berarti pemain yang cerdas tidak dapat mengambil keuntungan darinya - jika Anda dapat membunuh musuh sebelum kehabisan ruang, dan mundur ketika tidak ada musuh, itu adalah kemenangan bersih. Tapi saya berpendapat bermain cerdas harus dihargai, tidak dihukum.
Doval
1

Tambahkan kecepatan kapal ke kecepatan peluru ketika mereka dibuat.

Saat bergerak mundur, peluru akan melambat. Saat bergerak maju, mereka akan dipercepat. Namun ini akan memiliki efek membuat peluru bergerak secara horizontal ketika kapal melakukannya - bereksperimen dengan memiliki peluru yang hanya dipengaruhi oleh kecepatan y.

Steffan Donal
sumber
Ironisnya, sementara ini lebih dekat dengan fisika nyata dan menghindari "masalah" yang coba dihindari penulis pertanyaan, hasilnya bukan seperti yang saya harapkan sebagai pemain. Seperti yang dikatakan @kreys, efek Doppler adalah apa yang orang harapkan untuk lihat di sini.
Peeja
3
jika Anda melakukannya, Anda dapat menemukan diri Anda dalam situasi aneh, misalnya ketika Anda menembakkan dua peluru dengan cepat, sementara itu mengubah arah pergerakan kapal dari belakang ke depan Anda akan memiliki peluru dengan kecepatan yang berbeda, di mana satu dapat mengejar yang lain, yang sama sekali tidak wajar.
kreys
(Kemudian lagi, itu hanya lebih dekat dengan fisika nyata jika tidak ada hambatan udara. Dan untuk menjadi sangat akurat Anda juga akan mengurangi momentum peluru dari kapal. Tapi itu akan konyol.)
Peeja
Terima kasih untuk ini. Saya akan mencobanya malam ini dan melihat apa yang terjadi, tetapi saya membayangkan ini adalah kasus optimasi prematur dan jarak variabel akan memiliki efek gameplay yang dapat diabaikan.
MHTri
Saya setuju bahwa Anda tidak benar-benar peduli tentang yang ini. Saya tahu saya tidak melakukannya ketika saya bermain SHMUPs
Steffan Donal