Daftar Isi:

Platformer Dengan Level Tak Terbatas di GameGo Dengan Makecode Arcade: 5 Langkah (dengan Gambar)
Platformer Dengan Level Tak Terbatas di GameGo Dengan Makecode Arcade: 5 Langkah (dengan Gambar)

Video: Platformer Dengan Level Tak Terbatas di GameGo Dengan Makecode Arcade: 5 Langkah (dengan Gambar)

Video: Platformer Dengan Level Tak Terbatas di GameGo Dengan Makecode Arcade: 5 Langkah (dengan Gambar)
Video: How to Make a Platformer Game [Part 1: Intro, sprites, movement & tile map] 2024, November
Anonim
Image
Image

GameGo adalah konsol portabel game retro kompatibel Microsoft Makecode yang dikembangkan oleh pendidikan TinkerGen STEM. Ini didasarkan pada chip STM32F401RET6 ARM Cortex M4 dan dibuat untuk pendidik STEM atau hanya orang-orang yang suka bersenang-senang membuat video game retro. Anda dapat mengikuti tutorial ini dan mencoba game di simulator Makecode Arcade dan kemudian menjalankannya di GameGo.

Pada artikel ini kita akan membuat game platformer dengan level tak terbatas yang dihasilkan secara acak. Dalam platformer, karakter yang dikendalikan pemain harus melompat dan memanjat di antara platform yang ditangguhkan sambil menghindari rintangan. Lingkungan sering menampilkan medan yang tidak rata dengan ketinggian bervariasi yang harus dilalui. Pemain sering memiliki kontrol atas ketinggian dan jarak lompatan untuk menghindari membiarkan karakter mereka jatuh ke kematian mereka atau melewatkan lompatan yang diperlukan. Kami akan menerapkan semua elemen dasar ini dan juga menambahkan fungsi kustom yang akan menghasilkan level baru saat kami mencapai akhir yang terakhir. Mari kita mulai!

Perlengkapan

GameGo

Langkah 1: Pahlawan

Pahlawan
Pahlawan

Sebagai langkah pertama kita akan membuat alter ego kita. Keterampilan menggambar saya sangat buruk, jadi saya hanya memutuskan untuk menggunakan salah satu dari Galeri;) Berbeda dengan game yang kami buat sebelumnya, di platformer ini karakter yang dapat kami mainkan hanya dapat bergerak ke kiri dan ke kanan dan juga dapat melompat. Jadi, daripada memiliki dua sprite yang berbeda untuk karakter utama, satu saja sudah cukup kali ini - kita bisa membalik gambar sprite saat kita mengubah arah.

Hal pertama yang harus dilakukan adalah menambahkan latar belakang dan peta ubin. Saya telah memilih peta ubin panjang 32x8 - untuk level pertama kami akan menggambarnya secara manual, seperti pada tangkapan layar 2. Kemudian kami menambahkan karakter yang dapat kami mainkan dengan mengatur mySprite ke sprite of kind Player block dan meletakkannya di atas ubin 0-5. Kami juga mengatur kamera untuk bergerak dengan karakter yang dapat dimainkan dan mengontrol gerakan kiri dan kanannya - kami akan mengatur kecepatan vy gerakan ke 0, karena karakter kami seharusnya tidak dapat melayang bebas di peta sepanjang arah y. Tambahkan dua di … blok yang ditekan tombol, satu untuk tombol kiri, satu untuk kanan. Ketika tombol kiri ditekan, kami memeriksa apakah arah kami "kiri" sebelum menekan tombol. Jika ya, kita lanjutkan saja ke kiri. Jika tidak, kita perlu membalik gambar sprite karakter kita. Logika serupa untuk gerakan kanan.

Semua baik-baik saja untuk saat ini, satu-satunya masalah tampaknya pahlawan kita tampaknya tidak dapat mengatasi rintangan apa pun. Jadi kita perlu menambahkan melompat. Kami akan memantau kontrol untuk menekan tombol naik dan ketika terdeteksi, kami akan mengatur lompatan variabel ke 1, catat waktu gerakan lompatan dimulai dan setel kecepatan sprite karakter vy ke -200 (naik). Kemudian setelah jangka waktu tertentu, kita akan mengatur kecepatan menjadi 200 (turun), sehingga pahlawan kita tidak akan menembak ke langit sebagai roket.

Saya pikir kami menciptakan pahlawan yang layak untuk tantangan sekarang! Nah, dimana tantangannya?

Langkah 2: Musuh

Musuh
Musuh

Kami akan menggunakan struktur array untuk menyimpan sprite musuh. Untuk jenis musuh kita akan mengambil jalan pintas sedikit dan menggunakan kelelawar:) bukan referensi coronavirus, hanya saja kelelawar bisa terbang, itu sebabnya kita tidak perlu "mensimulasikan" gravitasi untuk mereka, seperti yang kita lakukan dengan karakter yang dapat kita mainkan. Gunakan pada blok Musuh sejenis sprite yang dibuat untuk menempatkan kelelawar yang baru dibuat pada ubin spawn acak (ditandai dengan tanda putih kecil) dan atur kecepatan vx mereka ke -10 (bergerak perlahan ke kanan). Kemudian di dalam pembaruan game setiap blok 2000 ms kami mengulangi setiap item daftar musuh dan secara acak mengubah arahnya, sambil juga membalik sprite kelelawar jika perlu (untuk mencerminkan perubahan arah gerakan). Terakhir, kami menambahkan sprite of kind Player yang tumpang tindih dengan blok Musuh Sprite of kind lainnya, di mana kami melakukan pemeriksaan sederhana apakah pemain telah terkena. Jika bukan kami yang mengurangi satu nyawa, atur bendera hit ke 1 (telah dipukul) dan mulai penghitung waktu. Setelah 500 ms sejak last hit time berlalu, kami mengubah flag hit kembali ke 0. Kami melakukan itu agar pemain tidak kehilangan terlalu banyak nyawa yang berharga setelah bertabrakan dengan musuh.

Mari kita periksa bagaimana keadaan kita. Nah, pemandangannya tentu tampak lebih hidup dengan semua kelelawar beterbangan dan menggigit pemain kita. Sekarang kita membutuhkan senjata untuk melakukan tindakan heroik kita!

Langkah 3: Senjata

Senjata
Senjata

Untuk senjata, saya mengambil inspirasi dari game Nintendo lama tentang dua saudara tupai:) Mari tambahkan sprite peti ke level, cara yang sama kita lakukan dengan menambahkan musuh. Kami juga menginisialisasi variabel has_crate ke -1, yang menunjukkan karakter kami tidak membawa peti. Pada sprite of kind Player overlap dengan blok Sprite of kind Food lainnya, kita periksa apakah kita sudah memegang crate dan jika belum, kita atur variabel has_crate ke indeks crate sprite dalam daftar. Kemudian di blok update game kita pindahkan sprite itu bersama sprite pemain dan jika tombol A ditekan, kita ubah kecepatan vx peti menjadi 1200 atau -1200 (tergantung arah pergerakan karakter). Kami juga mengatur variabel has_crate kembali ke -1 lagi dan mengubah jenis sprite dari peti yang diluncurkan ke udara tadi ke Proyektil.

Terakhir, kita perlu peti untuk benar-benar menghancurkan musuh saat diluncurkan (tetapi tidak ketika musuh secara acak menemukan peti! itulah sebabnya kami menugaskan peti untuk mengetik Makanan dan mengubahnya menjadi Proyektil hanya saat diluncurkan) dan menghancurkan diri sendiri saat mengenai dinding. Kami menggunakan yang lain pada sprite jenis Proyektil tumpang tindih dengan blok Musuh sejenis Sprite lainnya untuk itu - dalam hal ini kami menghancurkan kedua sprite dan meningkatkan skor satu per satu. Jika Proyektil menabrak dinding, kami menghancurkan sprite-nya.

Hampir selesai sekarang! Gim ini dapat dimainkan sekarang, tetapi hampir tidak ada tantangan - hanya satu level dan cukup sederhana untuk itu. Kita bisa membuat lebih banyak level dengan tangan atau menulis algoritme yang akan menghasilkan level ini secara otomatis untuk kita - meskipun level itu tidak akan secantik level buatan manusia tentunya.

Langkah 4: Petualangan Tak Terbatas

Petualangan Tak Terbatas
Petualangan Tak Terbatas
Petualangan Tak Terbatas
Petualangan Tak Terbatas
Petualangan Tak Terbatas
Petualangan Tak Terbatas

Fungsi untuk pembuatan level acak terlihat agak menakutkan pada awalnya, tetapi sebenarnya ini adalah serangkaian langkah sederhana untuk menghasilkan level baru secara algoritmik, dengan cara level baru dapat dilewati untuk karakter yang dapat dimainkan. Pertama, kami berhati-hati untuk membawa karakter kami ke level baru itu - dengan menggunakan tumpang tindih Pemain jenis sprite … di lokasi - kami menggunakan ubin pintu portal sebagai pemicu ke level baru. Dalam fungsi generate_level kami menginisialisasi variabel baris, col, dan peluang. Kami juga membuat peta ubin baru, dengan ukuran yang sama seperti sebelumnya, tetapi kosong. Namun ada sedikit peringatan - untuk menggunakan set … pada baris tilemap … col … blok, tilemap harus memiliki ubin khusus ini --- itu sedikit kontra intuitif dan mungkin bug di Makecode. Jadi, yang perlu Anda lakukan adalah membuat peta petak, meletakkan semua jenis petak yang ingin Anda gunakan dalam pembuatan acak DAN kemudian menghapusnya.

Kami secara manual menempatkan ubin pertama (0x6) dan pemain di atasnya. Kemudian kita ulangi langkah berikutnya 30 kali - langkah berikutnya adalah rangkaian sederhana pemeriksaan Benar-Salah, yang memutuskan apakah kolom berikutnya akan menjadi 1) level yang sama seperti sebelumnya 2) satu naik atau 3) satu turun. Ada juga kemungkinan yang sangat kecil bahwa ubin berikutnya akan menjadi ubin lava - kami tidak ingin terlalu banyak! Setelah setiap ubin dibuat, kami mengisi ruang di bawahnya dengan lava - hanya demi kecantikan. Sebagai langkah terakhir, kami menambahkan musuh dan peti dan menempatkannya di atas ubin spawn acak.

Langkah 5: Petualangan Dimulai

Petualangan Dimulai
Petualangan Dimulai

Voila! Kami menyelesaikan platformer kami dan pahlawan kami dapat melakukan petualangan tanpa batas, mengalahkan kelelawar dan menghancurkan peti. jika Anda mengalami masalah, Anda dapat mengunduh kode dari repositori GitHub kami.

Itu hanya cetak biru dan pasti ada beberapa perbaikan yang bisa dilakukan, misalnya berbagai jenis musuh, bonus, generasi level yang lebih baik dan sebagainya. Jika Anda membuat versi game yang lebih baik, bagikan di komentar di bawah! Untuk informasi lebih lanjut tentang GameGo dan perangkat keras lainnya untuk pembuat dan pendidik STEM, kunjungi situs web kami, https://tinkergen.com/ dan berlangganan buletin kami.

TinkerGen telah membuat kampanye Kickstarter untuk MARK (Make A Robot Kit), kit robot untuk mengajar coding, robotika, AI!

Direkomendasikan: