Apakah ada cara untuk menutup jendela tanpa keluar dari pygame [duplikat]

Saya telah mencoba mencari banyak solusi dari pertanyaan lain tetapi saya tidak yakin dapat menerapkannya secara akurat ke dalam program saya. Jadi saya memutuskan untuk bertanya di sini.

Apakah ada cara sederhana untuk menutup jendela di pygame sambil tetap membuka pygame dan dapat menyelesaikan tugas? Saya menggunakan:

pygame.quit()

Tapi itu keluar dari program.

Adakah yang punya ide?


person JayRoy    schedule 17.03.2020    source sumber


Jawaban (1)


lakukan pygame.display.quit() untuk menutup jendela tanpa meninggalkan pygame

person Sven    schedule 17.03.2020
comment
Saya telah mencoba ini, tetapi dalam kode yang saya kerjakan, muncul kesalahan yang mengatakan tampilan Surface berhenti. Masih ada kode yang perlu dijalankan setelah saya menutup jendela ini, tetapi kesalahan ini menghentikannya. Saya tidak yakin bagaimana cara memperbaiki masalah baru ini. Haruskah saya melampirkan kode saya? - person JayRoy; 25.03.2020
comment
ya tolong tunjukkan kesalahan dan kode Anda - person Sven; 25.03.2020
comment
Pertama, saya berhasil menggunakan saran Anda untuk mengatasi kesalahan 'permukaan layar berhenti', tetapi sekarang saya mendapatkan kesalahan lain. Saya menggunakan pernyataan elif untuk mencari tombol enter pada keyboard. Ketika ditekan, saya ingin layar yang saya buka ditutup, tetapi shell tetap berjalan untuk memproses perhitungan. Sebaliknya saya mendapatkan: pygame.error: video system not initialized Maaf jika ini sangat panjang - person JayRoy; 27.03.2020
comment
Setelah Anda selesai pygame.display.quit Anda tidak dapat menjalankan perintah apa pun lagi untuk game Anda, jadi Anda harus memutus loop game - person Sven; 27.03.2020
comment
ini masalah saya, saya ingin GUI ditutup tetapi saya juga ingin SHELL tetap terbuka. Apa cara terbaik untuk melakukan ini? - person JayRoy; 27.03.2020
comment
bisakah Anda memberikan beberapa kode - person Sven; 27.03.2020
comment
Saya akan melakukannya, tetapi saya tidak dapat menemukan kesalahannya, jadi blok kode yang saya lampirkan akan terlalu besar untuk dikomentari. Jika membantu, kode yang menggunakan grafik ada di kelas. Fungsi rendering kelas ini dipanggil dalam perulangan while di luar kode. Di dalam loop while ini, ada pygame.display.quit dan kemudian fungsi rendering muncul setelahnya. Loop mencari tombol untuk ditekan dan seharusnya memutus loop dan melanjutkan. Namun hal ini tidak terjadi. - person JayRoy; 04.04.2020
comment
dengan break() Anda dapat keluar dari loop. Mungkin Anda harus mencobanya dengan loop Anda ketika Anda ingin menutup jendela. - person Sven; 04.04.2020
comment
sayangnya, sensor untuk loop sebenarnya berada di luar loop. Itu tetap dalam fungsi rendering yang merupakan bagian dari kelas. Oleh karena itu, saya tidak yakin di mana saya harus meletakkan perintah break. - person JayRoy; 04.04.2020
comment
coba saja di mana perintahnya cocok. Jika tidak cocok sama sekali, coba lakukan seperti: running = True --------- - jika running: pygame.update_function() ---------------- jika sekarang_leave_game: berjalan = Salah - person Sven; 04.04.2020