Skip to content

Simple 2D game written in Rust using Bevy game engine while I was learning Rust.

Notifications You must be signed in to change notification settings

malina314/Rust-scrolling-shooter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Scrolling shooter

demo

Autorzy

  • Mateusz Malinowski (gr 4)

Opis

Od dwóch lat chciałem napisać scrolling shootera i wygląda na to, że w końcu go napiszę.

Gra tego gatunku, w którą dużo grałem w dzieciństwie to Chicken Invaders 4, więc zapewne będę się nią inspirował.

Przeciwnicy będą pojawiać się falami z bossem co 10 fal. Fale będą generowane losowo. Liczba fal będzie nieskończona. Gra będzie się toczyć do utraty wszystkich żyć przez gracza.

Funkcjonalność

  • Latanie statkiem kosmicznym
  • Strzelanie
  • Możliwość zapisywania i wczytywania stanu gry
    • autosave co falę
    • ręczy zapis zapisuje stan po przejściu ostatniej fali
  • Punktacja
  • Ulepszanie broni
  • Różne rodzaje broni

Propozycja podziału na części

Pierwsza część:

  • Poruszanie się ✅
  • Strzelanie ✅
  • Niszczenie przeciwników ✅
  • Punktacja ✅
  • Możliwość zapisywania i wczytywania stanu gry ✅

Druga część:

  • Ulepszanie broni ✅
  • Różne rodzaje broni ✅
  • Ładne animacje ✅
    • niszczenie przeciwników ✅
    • przewijające się tło ✅
  • Dźwięki ❌
  • Poprawienie organizacji kodu ✅
  • Poprawienie poruszanie się przeciwników ❌
  • Poprawienie saveów ❌
    • zapisywanie w trakcie fali ❌
    • możliwość wyboru savea ❌
    • quicksave ❌
  • Balans rozgrywki ✅/❌

Podsumowanie pierwszej części

Tworząc grę, korzystałem z tego tutorialu, cheat booka oraz przykładów ui i state. Udało mi się zrealizować wszystkie zaplanowane na tę część zadania. Ogólnie rzecz biorąc, gra jest grywalna. Bardzo przyjemnie tworzy się gry w bevy.

Sterowanie

  • strzałki — poruszanie się
  • spacja — strzelanie lub odpazuowanie
  • escape lub p — pauza

Zapisywanie gry

  • można zapisać grę, ale ścieżka pliku jest zahadrkodowana, więc można mieć tylko jeden zapis (kolejny zapis nadpisuje poprzedni)
  • zapisywany jest numer fali, liczba żyć oraz liczba punktów w formacie tekstowym

Inne

  • przeciwnicy pojawiają się losowo, mają losową prędkość, poruszają się po trajektorii rombu
  • przeciwnicy strzelają losowo, średnio powinien być jeden strzał na sekundę na ekranie
  • gracz może strzelać tak szybko, jak jest w stanie naciskać spację
  • gracz ma 3 życia, ale nie jest to nigdzie wyświetlane

Podsumowanie drugiej części

Została dodana nowa broń — shotgun. Bronie można ulepszać, każde ulepszenie zwiększa liczbę wystrzeliwanych pocisków o 1. Została dodana możliwość zbierania ulepszeń. Zostały dodane animacje niszczenia przeciwników i przewijanie tła. Pozostałe zaplanowane rzeczy nie zostały zrealizowane, ponieważ postanowiłem skupić się na nauce do sesji.

Ulepszenia

  • hp - zwiększa ilość żyć o 1
  • power_up - zwiększa poziom broni o 1
  • blue_weapon - zmienia broń na lasery
  • green_weapon - zmienia broń na shotgun

Biblioteki

  • Bevy
  • rand

About

Simple 2D game written in Rust using Bevy game engine while I was learning Rust.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages