Isi kandungan:

Battle City Remake di GameGo With Makecode Arcade: 4 Steps (with Pictures)
Battle City Remake di GameGo With Makecode Arcade: 4 Steps (with Pictures)

Video: Battle City Remake di GameGo With Makecode Arcade: 4 Steps (with Pictures)

Video: Battle City Remake di GameGo With Makecode Arcade: 4 Steps (with Pictures)
Video: MakeCode Arcade Advanced - Boss Battle 2024, November
Anonim
Image
Image

GameGo adalah konsol mudah alih permainan retro yang serasi dengan Microsoft Makecode yang dibangunkan oleh pendidikan TinkerGen STEM. Ia berdasarkan cip STM32F401RET6 ARM Cortex M4 dan dibuat untuk pendidik STEM atau hanya orang yang suka berseronok membuat permainan video retro. Anda boleh mengikuti tutorial ini dan mencuba permainan di simulator Makecode Arcade dan kemudian menjalankannya di GameGo.

Dalam artikel ini, kami akan berusaha mencipta permainan penembak tangki Battle City klasik, yang pada mulanya dihasilkan dan diterbitkan pada tahun 1985 oleh Namco untuk Nintendo Entertainment System (NES). Dalam permainan asal pemain mengawal tangki dan menembak peluru untuk memusnahkan kereta kebal musuh. Tangki musuh cuba menghancurkan pangkalan pemain, dan juga tangki pemain itu sendiri. Kami akan melakukan beberapa pengubahsuaian pada permainan untuk menampung praktik pengaturcaraan blok dengan GameGo dengan lebih baik, tetapi pembuatan semula kami akan tetap memiliki banyak persamaan dengan permainan yang asli. Mari kita mulakan!

Bekalan

GameGo

Langkah 1: Alter-ego kami - Tangki Kuning

Alter-ego kami - Tangki Kuning
Alter-ego kami - Tangki Kuning

Buka Makecode Arcade di https://arcade.makecode.com/ dan klik pada projek baru. Kami akan mula membuat alter ego tangki kuning kami. Pilih Tetapkan blok mySprite ke blok pemain jenis dan lukis tangki kuning menghadap ke atas sebagai sprite permulaan kami, letakkan blok itu di dalam blok permulaan. Tambah gerakkan mySprite dengan blok butang. Sekarang kita mempunyai tangki yang boleh kita gerakkan dengan butang dalam simulasi! Hebat, tetapi selalu menghadap ke arah yang sama, bahkan ketika kita bergerak ke bawah atau ke samping …

Untuk membetulkannya, mari tambahkan empat blok lagi, satu untuk setiap butang arah. Buat pemboleh ubah baru, yang dipanggil arah - kita akan menyimpan arah pergerakan tangki kita di dalamnya, 100 akan sesuai dengan ke bawah, -100 akan sesuai dengan ke atas, 200 untuk kanan dan -200 untuk kiri. Mengapa nombor ini? Anda akan melihat kemudian, apabila kita menambah projektil yang akan ditembakkan oleh tangki kita. Logik dalam setiap empat blok ini sangat mudah - kami memeriksa sama ada arah baru (dari tekan butang) sama dengan arah sebelumnya. Sekiranya ada, pada dasarnya kita tidak melakukan perubahan. Sekiranya tidak, kita mengubah sprite tangki dan sekiranya arah ke bawah dan kiri, kita membalikkan gambar sprite untuk mengelakkan melukis sprite tambahan. Akhirnya mari kita menetapkan nilai permulaan arah ke -100 (tangki ke atas), kerana ini adalah bagaimana tangki kita memulakan permainan. Cuba gerakkan tangki kuning sekarang, sprite akan berubah mengikut arah pergerakannya sekarang! Hebat, sekarang mari kita tambah peluru.

Kami akan menembakkan peluru dengan set proyektil ke proyektil (lukis persegi perak kecil untuk sprite itu) dari mySprite dengan kecepatan vx vy. Inside of on A block yang ditekan, kita perlu memeriksa nilai arah mutlak untuk melihat apakah tangki kuning menghadap ke atas / bawah kiri / kanan. Kami kemudian menembak proyektil dengan kelajuan pemboleh ubah arah - itu sebabnya kami mempunyai -100 / 100 / -200 / 200 untuk nilai arah.

Sekarang kita mempunyai tangki kuning yang dapat menembakkan proyektil dan bergerak. Sekiranya tangki simulasi kuning dapat merasakannya, ia pasti akan merasa kesepian dalam kekosongan kosong ini tanpa musuh dan perkara yang perlu dilakukan. Jadi, untuk langkah seterusnya mari tambahkan musuh agar ia meluangkan masa.

Langkah 2: Bawa Musuh

Membawa Musuh
Membawa Musuh
Membawa Musuh
Membawa Musuh

Kami akan memulakan langkah ini dengan membuat sekumpulan pemboleh ubah baru: dua tatasusunan (satu untuk menahan sprite musuh dan satu lagi untuk menahan arah musuh), pemboleh ubah waktu bertelur untuk menyimpan jangka masa antara spawn, jumlah musuh untuk menyimpan jumlah maksimum musuh pada masa yang sama. Kami juga akan menambah dua proyektil (proyektil dan proyektil musuh) menembak pada blok permulaan - yang akan membantu kami untuk mengelakkan kesilapan kemudian.

Seterusnya kami membuat kemas kini permainan setiap… blok ms, masukkan pemboleh ubah spawn_time di sana. Logik di dalam blok itu mudah - jika jumlah musuh di medan perang kurang dari jumlah musuh yang dibenarkan maksimum, tambahkan musuh ke musuh_sprite_list dan tambahkan 200 (menuju ke kanan) arah musuh itu.

Seterusnya, di blok Enemy jenis sprite yang telah dibuat, kita tambahkan beberapa kesan grafik, letakkan pada jubin kosong rawak dan panggil fungsi pick_direction untuk sprite ini. Dalam musuh jenis tembakan, kita memanggil fungsi yang sama, pilih_direction.

Apa yang ada dalam fungsi itu? Di sinilah keadaan mula menjadi sedikit rumit, jadi tunggu. Terdapat 50 peratus kemungkinan tangki musuh naik dan 50 persennya jatuh - kita mengubah sprite dengan sewajarnya. Satu-satunya muslihat di sini ialah kita juga perlu mengubah nilai yang sesuai dengan tangki musuh tertentu dalam senarai_pengarah_ musuh ke arah yang baru, jadi kita akan mempunyai peluru ke arah yang betul. Untuk itu kita dapati indeks sprite musuh dalam senarai musuh_sprite_ dan mengubah nilai item tersebut dalam senarai arahan_ musuh.

Akhirnya, mari tambah tembakan tembakan. Kami menambah satu lagi pada kemas kini permainan setiap blok 500 ms dan memasukkan item untuk item dalam senarai musuh_sprite_list. Dengan kemungkinan 30% musuh sprite akan menembakkan peluru musuh ke arah pergerakannya.

Sekiranya kita melancarkan permainan dalam simulasi sekarang, kita dapat melihat tangki kuning dan tangki musuh kita muncul di titik yang sama dan menuju ke tempat kosong. Kita boleh menembak dan mereka dapat menembak tangki kuning kita, tetapi tidak akan berlaku. Rasanya masih belum ada makna:) Mari kita tambahkan hiasan dan mekanik permainan sebagai langkah terakhir.

Langkah 3: 42 Permainan

42 Permainan
42 Permainan
42 Permainan
42 Permainan
42 Permainan
42 Permainan

Kami akan memulakan langkah ini dengan menambahkan hayat dan skor dari tab Maklumat dan menetapkan hayat menjadi 10 dan skor menjadi sifar. Kemudian kita tambahkan peta jubin set blok ke…. Lukis peta fail untuk kelihatan seperti yang anda lihat dalam tangkapan skrin di atas. Jangan lupa menambah dinding!

Mari kita tambahkan sprite jenis Projectile bertindih dengan yang lainSpite of kind Player - ini adalah ketika peluru musuh melanda tangki kuning kita. Kita perlu memastikan bahawa proyektil ini adalah peluru musuh dan bukan milik kita, jadi kita akan menambahkannya jika keadaan berada dalam blok dan jika dinilai sebagai Benar, maka kita tolak satu dari jumlah kehidupan. Sama seperti itu, di blok lain pada sprite of kind Projectile tumpang tindih dengan yang lainSebaliknya musuh yang baik kita memastikan bahawa projectile adalah projectile dari tangki kuning dan jika keadaan ini dinilai sebagai Benar, kita memusnahkan lainSprite (tangki musuh), keluarkan dari senarai dari musuh_sprite_list dan tambahkan satu untuk menjaringkan gol.

Perkara terakhir adalah keadaan kemenangan dan kekalahan - untuk kemenangan, kami akan memeriksa sama ada skor lebih tinggi atau sama dengan 10 dalam blok selamanya. Sekiranya ada, maka kami menunjukkan skrin kemenangan. Dan dalam blok hidup zero kami menunjukkan skrin Game Over.

Sekarang cubalah dalam simulasi untuk melihat apakah permainan berjalan seperti yang diharapkan. Kemudian muat naik ke GameGo dan nikmati menghancurkan tangki musuh!

Langkah 4: Permainan dan Penambahbaikan yang tidak berkesudahan

Permainan dan Penambahbaikan yang tidak berkesudahan
Permainan dan Penambahbaikan yang tidak berkesudahan

Di repositori GitHub kami, anda boleh memuat turun dua fail untuk Makecode arcade - satu sama persis seperti yang anda dapat jika anda mengikuti arahan ini dan yang lain adalah versi yang ditingkatkan, yang telah menghasilkan kemajuan tahap secara rawak. Ia memiliki 10 tingkat, masing-masing dihasilkan secara rawak dengan peningkatan jumlah musuh di setiap tingkat berturut-turut.

Dan tentu saja, terdapat lebih banyak perkara yang anda atau pelajar anda boleh tambahkan ke permainan selain itu! Terdapat muzik yang lebih baik, tembok yang mudah pecah, keadaan kemenangan yang berbeza dan sebagainya!

Sekiranya anda membuat versi permainan yang lebih baik, bagikan dalam komen di bawah! Untuk maklumat lebih lanjut mengenai GameGo dan perkakasan lain untuk pembuat dan pendidik STEM, lawati laman web kami, https://tinkergen.com/ dan langgan blog kami.

TinkerGen telah memulakan kempen Kickstarter untuk MARK (Make A Robot Kit), sebuah kit robot untuk mengajar pengkodan, robotik, AI!

Disyorkan: