Isi kandungan:

Platformer Dengan Tahap Tidak Terbatas di GameGo With Makecode Arcade: 5 Steps (with Pictures)
Platformer Dengan Tahap Tidak Terbatas di GameGo With Makecode Arcade: 5 Steps (with Pictures)

Video: Platformer Dengan Tahap Tidak Terbatas di GameGo With Makecode Arcade: 5 Steps (with Pictures)

Video: Platformer Dengan Tahap Tidak Terbatas di GameGo With Makecode Arcade: 5 Steps (with Pictures)
Video: De Mambo Switch Review 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 jalankan di GameGo.

Dalam artikel ini kita akan membuat permainan platformer dengan tahap yang dihasilkan secara rawak tanpa batas. Dalam platformer, watak yang dikendalikan pemain mesti melompat dan naik di antara platform yang digantung sambil mengelakkan halangan. Persekitaran sering mempunyai kawasan yang tidak rata dengan ketinggian yang berbeza yang mesti dilalui. Pemain sering mempunyai kawalan atas ketinggian dan jarak lompatan untuk mengelakkan watak mereka jatuh hingga mati atau ketinggalan lompatan yang diperlukan. Kami akan menerapkan semua elemen asas ini dan juga menambahkan fungsi khusus yang akan menghasilkan tahap baru ketika kita mencapai akhir yang terakhir. Mari kita mulakan!

Bekalan

GameGo

Langkah 1: Wira

Wira
Wira

Sebagai langkah pertama kita akan mencipta alter-ego kita. Kemahiran melukis saya agak buruk, jadi saya memutuskan untuk menggunakan satu dari Galeri;) Tidak seperti permainan sebelumnya yang kami buat, dalam platform ini watak kami yang boleh dimainkan hanya dapat bergerak ke kiri dan kanan dan juga boleh melompat. Oleh itu, bukannya mempunyai dua sprite yang berbeza untuk watak utama, satu cukup untuk kali ini - kita hanya boleh membalikkan gambar sprite ketika kita menukar arah.

Perkara pertama yang perlu dilakukan ialah menambahkan latar belakang dan peta jubin. Saya telah memilih peta jubin panjang 32x8 - untuk tahap pertama kami akan melukisnya secara manual, seperti dalam tangkapan skrin 2. Kemudian kami menambah watak yang boleh dimainkan dengan set mySprite ke blok Pemain jenis yang baik dan meletakkannya di bahagian atas jubin 0-5. Kami juga mengatur kamera untuk bergerak dengan watak yang boleh dimainkan dan mengawal pergerakan kiri dan kanannya - kami akan menetapkan pergerakan pergerakan menjadi 0, kerana watak kami tidak boleh melayang bebas di peta sepanjang arah y. Tambah dua butang… blok ditekan, satu untuk butang kiri, satu untuk kanan. Apabila butang kiri ditekan, kami memeriksa apakah arah kami "kiri" sebelum menekan butang. Sekiranya ada, kita terus pergi ke kiri. Sekiranya tidak, kita perlu membalikkan imej sprite watak kita. Logik serupa untuk pergerakan kanan.

Semua baik buat masa ini, satu-satunya masalah nampaknya wira kita tidak dapat mengatasi halangan apa pun. Jadi kita perlu menambah melompat. Kami akan memantau kawalan untuk menekan butang ke atas dan apabila dikesan, kami akan menetapkan melompat melompat ke 1, perhatikan masa pergerakan melompat dimulakan dan atur halaju sprite watak hingga -200 (naik). Kemudian setelah jangka masa yang ditentukan, kami akan menetapkan kecepatan hingga 200 (turun), jadi pahlawan kami tidak akan menembak ke langit sebagai roket.

Saya rasa kami mencipta wira yang layak menghadapi cabaran sekarang! Nah, di mana cabarannya?

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 kelawar:) bukan rujukan coronavirus, hanya kelelawar yang dapat terbang, itu sebabnya kita tidak perlu "mensimulasikan" graviti untuk mereka, seperti yang kita lakukan dengan watak kita yang boleh dimainkan. Gunakan blok Enemy jenis sprite yang dibuat untuk meletakkan kelawar yang baru dibuat di jubin spawn rawak (ditandakan dengan tanda putih sedikit) dan tetapkan halaju vx mereka ke -10 (perlahan-lahan melayang ke kanan). Kemudian dalam pembaruan permainan setiap blok 2000 ms kami mengulangi setiap item dari senarai_ musuh dan mengubah arah mereka secara rawak, sambil juga membalikkan sprite kelawar jika perlu (untuk mencerminkan perubahan arah pergerakan). Akhirnya, kami menambah pemain yang tumpang tindih dengan blok musuh yang lain, di mana kami melakukan semakan mudah sekiranya pemain telah dipukul. Sekiranya tidak, kita tolak satu nyawa, tetapkan bendera tekan menjadi 1 (sudah terkena) dan mulakan pemasa. Setelah 500 ms sejak masa hit terakhir berlalu, kami menukar bendera kembali menjadi 0. Kami melakukan itu agar pemain tidak boleh kehilangan banyak nyawa yang berharga setelah bertembung dengan musuh.

Mari kita periksa bagaimana keadaan kita. Nah, pemandangan pasti kelihatan lebih hidup dengan semua kelawar terbang dan menggigit pemain kami. Sekarang kita memerlukan senjata untuk melakukan perbuatan kepahlawanan kita!

Langkah 3: Senjata

Senjata
Senjata

Untuk senjata itu, saya mendapat inspirasi dari permainan Nintendo lama mengenai dua saudara chipmunk:) Mari tambahkan sprite peti ke tahap, seperti yang kita lakukan dengan menambahkan musuh. Kami juga memulakan pemboleh ubah has_crate ke -1, yang menunjukkan watak kami tidak membawa peti. Di sprite of kind Player tumpang tindih dengan blok Makanan lain dari jenis yang baik, kami memeriksa sama ada kami sudah memegang peti dan jika tidak, kami menetapkan pemboleh ubah has_crate ke indeks sprite peti dalam senarai. Kemudian pada blok kemas kini permainan, kita memindahkan sprite itu bersama sprite pemain dan jika butang A ditekan, kita mengubah kecepatan vx peti menjadi 1200 atau -1200 (bergantung pada arah pergerakan watak). Kami juga menetapkan variabel has_crate kembali ke -1 lagi dan mengubah jenis sprite peti yang dilancarkan ke udara sekarang ke Projectile.

Terakhir, kita memerlukan peti untuk benar-benar memusnahkan musuh ketika dilancarkan (tetapi tidak ketika musuh hanya tersandung secara acak di atas peti! Itu sebabnya kami menetapkan peti untuk menaip Makanan dan menukarnya ke Proyektil hanya ketika dilancarkan) dan memusnahkan diri ketika memukul dinding. Kami menggunakan yang lain pada sprite of Projectile yang tumpang tindih dengan yang lain. Block of Enemy blok untuk itu - dalam hal ini kita memusnahkan kedua-dua sprite dan menaikkan skor satu. Sekiranya Projectile memukul dinding, kita akan menghancurkan sprite-nya.

Hampir selesai sekarang! Permainan ini boleh dimainkan sekarang, tetapi hampir tidak ada cabaran - hanya satu tahap dan cukup sederhana pada masa itu. Kita boleh membuat lebih banyak tahap dengan tangan atau menulis algoritma yang akan menghasilkan tahap ini secara automatik untuk kita - walaupun tentu saja mereka tidak akan secantik manusia.

Langkah 4: Pengembaraan Tidak Terbatas

Pengembaraan Tidak Terbatas
Pengembaraan Tidak Terbatas
Pengembaraan Tidak Terbatas
Pengembaraan Tidak Terbatas
Pengembaraan Tidak Terbatas
Pengembaraan Tidak Terbatas

Fungsi untuk penjanaan peringkat rawak pada mulanya kelihatan agak menakutkan, tetapi sebenarnya merupakan satu rangkaian langkah mudah untuk menghasilkan tahap baru secara algoritma, dengan cara tahap baru dapat dilalui untuk watak yang boleh dimainkan. Pertama, kita menjaga agar watak kita ke tahap yang baru - dengan menggunakan tumpang tindih jenis pemain bertindih … di lokasi - kita menggunakan jubin pintu portal sebagai pencetus ke tahap yang baru. Dalam fungsi menghasilkan_level kita menginisialisasi pemboleh ubah baris, kol dan peluang. Kami juga membuat peta jubin baru, ukurannya sama seperti sebelumnya, tetapi kosong. Ini sedikit peringatan walaupun - untuk menggunakan set … pada baris tilemap … blok … blok, peta itu perlu mempunyai jubin-jubin ini --- yang agak bertentangan intuitif dan mungkin bug di Makecode. Oleh itu, apa yang perlu anda lakukan ialah membuat peta kecil, letakkan semua jenis jubin yang ingin anda gunakan dalam penjanaan rawak DAN kemudian padamkannya.

Kami meletakkan jubin pertama (0x6) dan pemain secara manual di atasnya. Kemudian kita ulangi langkah seterusnya 30 kali - langkah seterusnya adalah siri pemeriksaan True-False yang mudah, yang memutuskan sama ada tiang lajur seterusnya kita akan menjadi 1) tahap yang sama seperti sebelumnya 2) satu naik atau 3) satu turun. Terdapat juga kemungkinan kecil bahawa jubin seterusnya akan menjadi jubin lava - kita tidak mahu terlalu banyak! Setelah setiap jubin dihasilkan, kami mengisi ruang di bawahnya dengan lava - hanya untuk keselesaan. Sebagai langkah terakhir kita menambah musuh dan peti dan meletakkannya di atas jubin bertelur rawak.

Langkah 5: Pengembaraan Bermula

Pengembaraan Bermula
Pengembaraan Bermula

Voila! Kami menyelesaikan platformer kami dan wira kami dapat melakukan pengembaraan tanpa batas, mengalahkan kelawar dan menghancurkan peti. jika anda menghadapi masalah, anda boleh memuat turun kod tersebut dari repositori GitHub kami.

Ini hanya cetak biru dan pasti ada beberapa penambahbaikan yang boleh dilakukan, misalnya pelbagai jenis musuh, bonus, penjanaan tahap yang lebih baik 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 buletin kami.

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

Disyorkan: