Jadi, ada proyek di luar sana yang disebut BulletML yang merupakan bahasa markup untuk membuat pola partikel / peluru yang kompleks. Anda hampir pasti perlu melakukan porting kode ke bahasa Anda sendiri, tetapi dapat melakukan beberapa hal yang sangat menakjubkan.
Sebagai contoh, bos ini dilakukan dalam ekstensi BulletML untuk Unity3D (dimodifikasi banyak) (penulis pola itu mengunggah bahwa video dan Misery gila, serta bagus 1 ). Ini variasi yang paling sulit dari musuh itu dan menunjukkan apa yang mampu dilakukan BulletML dengan baik (dan lihat juga beberapa bos Misery lainnya, Seperti Wallmaster ).
Atau saya dapat menunjukkan contoh ini, yang merupakan pola yang saya tulis saat mengerjakan perluasan untuk The Last Federation , menggunakan revisi sistem yang lebih lama yang kurang ramah-mod dan hanya menggunakan variabel AZ karakter tunggal:
Peluru hijau yang membuat cincin itu muncul dari peluru induk yang berputar dengan kecepatan tinggi, tetapi mereka sendiri tidak memiliki gerakan. Mereka menangani kerusakan besar-besaran, menjaga agar pemain berada pada jarak yang lebih jauh, membatasi mereka untuk menurunkan senjata yang rusak dan memungkinkan pembela bergerak untuk melecehkan pemain (pemain menang jika struktur yang tidak bergerak di tengah sana dihancurkan).
Berikut adalah sebagian dari sintaks XML yang menciptakan gelembung-gelembung itu:
<bullet_pattern name="Barrier">
$WallShotAngle B=.3 A=90
$WallShotAngle B=.3 A=-90
$WallShotAngle B=.3 A=0
$WallShotAngle B=.375 A=180
</bullet_pattern>
<var name="WallShotAngle">
<bullet angle="[A]" speed="4000" interval_mult=".01" dumbfire="1" shot_type="GravityWavePurple">
<wait time="[B]" />
<change angle="0" speed="1000" time=".0001" />
<spawn>
<bullet_pattern>
<bullet angle="[A]" speed="0" shot_type="CurveBarGreen" damage_mult="8">
<wait time="12" />
<die />
</bullet>
</bullet_pattern>
</spawn>
<die />
</bullet>
</var>
Anda dapat melihat beberapa bidikan "gelombang gravitasi" ungu di tangkapan layar, yang bergerak hampir secara instan dari sumber (yang berotasi) ke tepi gelembung, di mana ia menghasilkan bidikan "bilah melengkung" berwarna hijau, yang duduk di sana selama 12 detik sebelum melecehkan. Tembakan biru dan kuning yang saya hilangkan, karena jauh lebih rumit.
Salah satu pola lain ( peluru artileri ) dalam ekspansi sebenarnya ditulis oleh Misery, meskipun saya membuat beberapa modifikasi. Awalnya ini adalah tembakan menembus rendah yang menembus ke jarak jauh dan kemudian meledak menjadi tampilan kembang api besar, menghasilkan banyak kerusakan. Kisaran maksnya jauh lebih tinggi daripada yang bisa dicapai pemain, pada dasarnya memaksa pemain untuk terlibat dalam jarak pendek, yang menguntungkan untuk jenis unit NPC lain karena efek shotgun (lebih banyak peluru yang dikelompokkan di zona kecil).
BulletML mudah digunakan, secara umum, dan dapat melakukan hal-hal menakjubkan. Peluru dapat mengubah arah, mengubah kecepatan, menelurkan pola lain, mati lebih awal, mengulangi kumpulan perintah dalam satu lingkaran, menggunakan penundaan, mengubah gambar spet peluru, mengikuti induknya (atau tidak) ... Dan apa pun yang tidak mendukung Anda dapat tulis ke dalamnya.
Saya pasti akan merekomendasikan itu jika Anda melakukan game shoot up serius. Anda masih perlu mengerjakan matematika koordinat untuk mendapatkan bentuk yang diinginkan, seperti yang dibicarakan Charanor dalam jawabannya, tetapi mesin peluru seperti BulletML akan memberi Anda jauh lebih banyak fleksibilitas sehingga Anda akan menghabiskan lebih banyak waktu merancang pola-pola baru daripada mencari tahu bagaimana kode mereka.
- Untuk menjelaskan betapa bagusnya Misery, video-video itu melawan bos lantai dengan peralatan pemula : tidak ada modul, tidak ada bahan habis pakai, dan penembak kacang polong dasar. Dan xe hanya mengambil satu pukulan meskipun pertarungan sifatnya memanjang. Ok, 9 hits melawan Centrifuge (yang tidak muncul sampai lantai tiga setelah pemain pasti akan memiliki peningkatan yang menghasilkan setidaknya dua kali lipat kerusakan secara komparatif).