Jak zapisać grę w python (nie pygame) z poziomu programu?

Jak zapisać grę w python (nie pygame) z poziomu programu?
MurfyPL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1
0

Chodzi mi oto np. jak w grach czy programach jest opcja "Zapisz stan gry" itp. Jak takie coś zrobić w python (nie pygame) . Jest do tego komenda? Da się to zrobić z komendą "input"?

LukeJL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8487
2

Nie rozumiem, co ma zapisywanie stanu gry do komendy input?

Jak chcesz zapisać mieć opcję zapisania/ładowania gry, to musisz zadbać o to, żeby stan twojej gry można było łatwo zapisać / odtworzyć. Kwestia designu struktur danych i całej gry.

Technicznie zaś mógłbyś zapisywać dane gry w jakimś JSON (czy innym formacie, jak @Spine sugeruje niżej) i później je wczytywać i na podstawie tego, co tam masz, to odtwarzać stan gry.

Spine
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6964
2

Wiele zależy od rodzaju gry i momentu, w którym chcesz dokonać zapisu.
Jeśli to zwykła gra konsolowa, to najprościej by było trzymać stan gry w jednej klasie.
Wtedy możesz zapisywać i wczytywać tą klasę.

Np. modułem shelve: https://docs.python.org/3/library/shelve.html
Albo marshal: https://docs.python.org/3/library/marshal.html
Albo pickle: https://docs.python.org/3/library/pickle.html

Poczytaj sobie o nich i różnicach między nimi.

Przez całą rozgrywkę operujesz na tej klasie i w dogodnym momencie zapisujesz jej zawartość.

Jeśli potrzebujesz zapisywać stan obiektów jak np. rozmieszczenie wrogów, utworzone obiekty itp., to już musisz sobie to jakoś rozplanować.
Żeby zapisywać i ładować te dane bez zgrzytów. Najprościej grę podzielić na "checkpointy" i po prostu sobie zapisać do którego poziomu doszedł gracz ;)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.