İçindekiler:
- Gereçler
- Adım 1: Başlangıç ve Round_setup İşlevlerinde
- 2. Adım: Oyun Akışı
- 3. Adım: Oyun 1: Yapay Zeka Rakibi
- Adım 4: Oyun 2: Simülatör Çok Oyunculu
- Adım 5: Oyun 3: Jacdac Çok Oyunculu
- Adım 6: Cthulhu Savaşı Başlasın
Video: (Çok Oyunculu)Makecode Arcade ile GameGo'da Dövüşmek: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:16
GameGo, TinkerGen STEM eğitimi tarafından geliştirilen, Microsoft Makecode uyumlu retro oyun taşınabilir konsoludur. STM32F401RET6 ARM Cortex M4 çipine dayanmaktadır ve STEM eğitimcileri veya sadece retro video oyunları yaratmayı sevenler için yapılmıştır. Bu öğreticiyi takip edebilir ve oyunu Makecode Arcade simülatöründe deneyebilir ve ardından GameGo'da çalıştırabilirsiniz.
Daha önce yayınladığımız makalelerde, bir platform oyunu ve Battle City Remake yapmak için zaten elimizi taşın altına koymuştuk. Bu sefer iki GameGo'yu birbirine bağlamak ve oyuncuların çok oyunculu bir dövüş oyununda üstünlük için savaşmalarına izin vermek için Jacdac arayüzünü kullanmak istedim. Ne yazık ki, Jacdac çok oyunculu için blok programlamanın şu anda beta aşamasında olduğunu ve bazı hataları olduğunu öğrendim - daha basit oyunlar yapmak hala mümkün, ancak dövüş oyunum için şansım yok. Bu yüzden, bu talimatta oyunun üç versiyonunu yayınlıyorum ("Cthulhu Combat" olarak adlandırdım:))
- basit AI rakibi ile tek oyuncu versiyonu
- Arcade simülasyonunda oynamak için çok oyunculu versiyon
- Jacdac ile çok oyunculu versiyon (tamamlanmamış, daha sonra güncellenecektir)
Gereçler
GameGo
Microsoft Makecode Oyun Salonu
Adım 1: Başlangıç ve Round_setup İşlevlerinde
Tek oyunculu oyunu kodlamayı ayrıntılı olarak anlatacağım ve sonraki adımlarda nasıl yapılacağını tartışacağız.
a) simülatör çok oyunculu
b) Jacdac çok oyunculu.
Karo haritasını karanlık zindana ayarlayarak ve oyuncu ve AI bot için sprite oluşturarak başlıyoruz - her ikisi de Oyuncu türüne ait olacak. Onların y ekseni ivmesini 600'e ayarladık - böylece zıpladıktan sonra uçmasınlar. Ayrıca round_setup işlevini çağırmadan önce mermileri bot ve oyuncudan başlatıyoruz. round_setup fonksiyonu bizim için yeni tur hazırlığı ile ilgilenir - bunu bir fonksiyon haline getirmemizin nedeni, oyunda toplamda 3 tur olabileceği ve aynı kodu tekrar etmekten kaçınmak istememizdir. Bu fonksiyonda önce oyunculardan herhangi birinin 2 zaferi olup olmadığını kontrol ederiz - bu koşul Doğru olarak değerlendirilirse oyun biter. Her iki oyuncunun da ikiden az zaferi varsa, round_num değişkenini bir arttırıyoruz ve oyuncuları başlangıç noktalarına yerleştiriyor, hayatlarını 100'e yeniliyor ve yeni bir turun başlangıcını ilan ediyoruz.
2. Adım: Oyun Akışı
Bu oyunda dünyanın kendisi statiktir ve oyun akışı oyuncuların eylemlerine bağlıdır. Dört blokta oyun kurallarının çoğunu tanımlıyoruz, bu bloklar şunlardır: yukarı düğmesine basıldı, aşağı düğmesine basıldı, A düğmesine basıldı ve B düğmesine basıldı. Bu blokların her birine bir göz atalım.
yukarı düğmesine basıldı - çift atlama mantığı. Atlama düğmesine 3 defadan az basarsak, oyuncu vy hızını - 140(yukarı hareket) olarak ayarlarız. Oyuncumuzun vy ivmesi 600'e ayarlanmış, bu yüzden bir kez zıpladığımızda hızımız hızla azalacak. 0'a ulaştığında (dikey eksende hareket etmiyor) jump_count'u tekrar 0'a ayarlıyoruz.
aşağı düğmesine basıldığında - menzilli saldırı kalkanı mantığı. Aşağı düğmesine basılırsa, oyuncu görüntüsünü "korumalı" olarak değiştirir ve korumalı değişkeni 1'e ayarlar.
A düğmesine basıldığında - bir mermi ateşleyin. Bu oldukça açıklayıcı.
B düğmesine basıldığında - uygulamadaki kalkana benzer yakın dövüş saldırısı.
Her.. ms bloğunda oyun güncellemesinde oyuncuların sprite görüntülerini ve onların korumalı/saldıran değişkenlerini her 500 ms'de bir 0'a ayarladık. Her eylem için bağımsız zamanlayıcılar ayarlayabilirdik, ancak basitlik adına sadece ana oyun güncelleme döngüsünü kullanacağız.
Buradaki kazanma koşulları oldukça kolaydır - oyuncu ömrü 0'a ulaştığında, diğer oyuncu raundu kazandı, daha sonra oyuncuya göre kazanma sayısını bir değişkende saklıyoruz.
Son olarak, menzilli saldırı hasarını ve yakın muharebe saldırı hasarını kontrol eden iki blok vardır. Her birinde sprite çarpışmasını kontrol ediyoruz ve saldıran oyuncu için korumalı/saldıran değişkenin 0/1 olarak ayarlanıp ayarlanmadığını kontrol ediyoruz.
3. Adım: Oyun 1: Yapay Zeka Rakibi
İlk oyunda, ikinci oyuncu olmak için nispeten basit bir AI rakibi yaratacağız. Oyun güncellemesinde her 200 ms'de bir önce oyuncu ile AI arasındaki mesafe kontrolünü yapıyoruz - eğer 20'den azsa, AI'mızı yakın muharebe saldırı şansını 30'a ve menzilli saldırı şansını 30'a yükselterek yakın dövüş moduna ayarlıyoruz. Mesafe daha yüksekse 20'den fazla yakın dövüş şansını sıfıra (oyuncu çok uzak olduğu için yakın dövüşte pint yok) ve şansı 70'e çıkardık. Bu basit AI'ya karşı kendiniz oynamayı denerseniz, davranışının çok basit olmasına rağmen, ona karşı kazanmanın kolay olmadığını göreceksiniz - bilgisayar kontrollü rakipler söz konusu olduğunda, çoğunlukla bir saniyeden daha fazla eylem gerçekleştirebildiği için kazanıyor. insan oyuncu
Kodlama yaparken takıldıysanız bu proje için GitHub depomuzdaki kodun tamamını indirebilir ve Makecode Arcade'de açabilirsiniz.
Adım 4: Oyun 2: Simülatör Çok Oyunculu
Simülasyondaki iki oyuncu için oyun varyantı, tek oyunculu sürüme çok benzer, ancak AI davranış bloğunu, oyuncu 2'de düğme basılı dört blokla değiştiriyoruz - bu blokların içindeki içerik, oyuncu 1 için aynı blokların içeriğini yansıtıyor. Hangi değişiklikleri yapmanız gerektiğine dair daha iyi bir fikir edinmek için ekran görüntüsüne bir göz atın. Bunun dışında ayrıca 2. oyuncuyu başlatma fonksiyonunda blok butonları ile hareket ettirmemiz ve ikinci oyuncu için bitiş ekranını KAYBET yerine KAZAN olarak değiştirmemiz gerekiyor.
Adım 5: Oyun 3: Jacdac Çok Oyunculu
Bu forum başlığında Makecode arcade bloklarıyla Jacdac çok oyunculu bir topluluk uygulaması buldum
forum.makecode.com/t/new-extension-real-mu…
Oradaki örnek oyunu (Space Invaders) test ettim ve çok iyi çalıştığını gördüm. Ne yazık ki, Cthulhu Combat'ın oyun mekaniği çok fazla değişken kullanıyor ve Görünen o ki Gerçek Çok Oyunculu uzantılar henüz değişkenleri senkronize etmeyi desteklemiyor - bu yüzden çalışmasını sağladım, iki oyuncunun eylemleri cihazlar arasında senkronize edildi, ancak hayat bunu yapamazdı. Rakiplerin cihazına düşmeyin. Ayrıca mermi mekaniğinde bir sorun var, mermiler duvara çarptıktan sonra kaybolmuyor gibi görünüyor, bu da yaklaşık 10 mermi ateşlendikten sonra oyunun bağlantısını kaybetmesine neden oluyor.
Denemek için GitHub depomuzdan-p.webp
Adım 6: Cthulhu Savaşı Başlasın
Basit dövüş oyunumuza hala yapılabilecek pek çok iyileştirme var - örneğin, daha karmaşık AI davranışı ekleyebilir veya düğme kombinasyonları ve/veya animasyon dizileri eklemek için uzantı kullanabilirsiniz. GameGo ve Makecode Arcade ile kendi oyunlarınızı programlarken iyi şanslar ve iyi eğlenceler.
Oyunun geliştirilmiş bir versiyonunu yaparsanız, aşağıdaki yorumlarda paylaşın! Yapımcılar ve STEM eğitimcileri için GameGo ve diğer donanımlar hakkında daha fazla bilgi için https://tinkergen.com/ web sitemizi ziyaret edin ve bültenimize abone olun.
Önerilen:
Arduino Kontrollü Çok Oyunculu Oyun Nasıl Yapılır: 6 Adım
Arduino Kontrol Cihazları ile Çok Oyunculu Bir Oyun Nasıl Yapılır: Oyun geliştiricilerin dünya çapında insanların oynamaktan zevk aldığı harika oyunları nasıl yarattığını hiç merak ettiniz mi? Pekala, Bugün size bir Arduino kontrol cihazı tarafından kontrol edilecek küçük bir çok oyunculu oyun yaparak bunun hakkında küçük bir ipucu vereceğim
Makecode Arcade ile GameGo'da Sonsuz Seviyeli Platform: 5 Adım (Resimlerle)
Makecode Arcade ile GameGo'da Sonsuz Düzeylere Sahip Platformer: GameGo, TinkerGen STEM eğitimi tarafından geliştirilen, Microsoft Makecode uyumlu bir retro oyun taşınabilir konsoludur. STM32F401RET6 ARM Cortex M4 çipini temel alır ve STEM eğitimcileri veya sadece retro video oyunu yaratırken eğlenmeyi seven insanlar için yapılmıştır
Makecode Arcade ile GameGo'da Battle City Remake: 4 Adım (Resimlerle)
Makecode Arcade ile GameGo'da Battle City Remake: GameGo, TinkerGen STEM eğitimi tarafından geliştirilen, Microsoft Makecode uyumlu bir retro oyun taşınabilir konsoludur. STM32F401RET6 ARM Cortex M4 çipini temel alır ve STEM eğitimcileri veya sadece retro video oyunları oluşturarak eğlenmeyi seven insanlar için yapılmıştır
Çok Oyunculu Düğmeye Çarpma: 4 Adım
Whack a Button Multiplayer: Köstebek Vurma gibi bir oyun. LED'leri ve düğmeleri kullanarak. 2 mod vardır: -Tek oyunculu-Tek oyunculu modda çok oyunculu, 3 seviye vardır:LEVEL_1: 1 saniye için 1 diyotLEVEL_2: için 2 diyot 1 saniyeLEVEL_3: 0,7 saniye için 2 diyotVe çoklu için
Arduino: Sinir bozucu Çok Oyunculu Sanat Arabası: 13 Adım
Arduino: Sinir bozucu Çok Oyunculu Sanat Arabası: Dit, bir sanat-araba kalıbıdır. Optioneel, zorgen dat de servo i