Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapakah pygame.event.get() tidak mengembalikan acara apabila dilaksanakan dalam urutan?

Mengapakah pygame.event.get() tidak mengembalikan acara apabila dilaksanakan dalam urutan?

DDD
Lepaskan: 2024-11-13 06:14:02
asal
1066 orang telah melayarinya

Why is pygame.event.get() not returning events when executed within a thread?

pygame.event.get() Tidak Mengembalikan Acara Di Dalam Thread

Isu:

Dalam permainan gaya pac-man menggunakan PyGame, fungsi receiving_inputs tidak mengambil sebarang acara papan kekunci apabila dilaksanakan dalam urutan, manakala acara tetikus masih didaftarkan.

Coretan Kod:

def receiving_inputs(self):
    while True:
        events = pg.event.get()
        for event in events:
            if event.type == pg.KEYDOWN:
                # Handle keyboard input
        time.sleep(1/60)

threading.Thread(target=self.receiving_inputs).start()
Salin selepas log masuk

Penyelesaian:

Pengendalian acara PyGame mesti berlaku dalam urutan utama.

Menurut dokumentasi acara PyGame:

The subsistem acara harus dipanggil dari urutan utama.

Walaupun acara boleh dihantar dari urutan lain, baris gilir acara mesti diproses dalam urutan utama. Jadi penyelesaiannya adalah untuk mengalihkan panggilan event.get() ke dalam utas utama.

Atas ialah kandungan terperinci Mengapakah pygame.event.get() tidak mengembalikan acara apabila dilaksanakan dalam urutan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan