Apabila bekerja dengan sprite dalam aplikasi Pygame, ia menjadi perlu untuk mengesan apabila pengguna mengklik pada sprite tertentu. Artikel ini menangani isu pengesanan klik dalam kumpulan sprite, secara khusus menyerlahkan ralat "AttributeError: Group has no attribute rect" sprite kepunyaan kumpulan tertentu bernama guess1. Untuk mencapai matlamat ini, sprite dicipta yang mewakili kedudukan kursor tetikus dan ditambah kepada kumpulannya sendiri, tikus. Sprite ini kemudiannya digunakan untuk pengesanan perlanggaran dengan teka1 dalam kumpulan tikus.
Walau bagaimanapun, percubaan pendekatan ini mengakibatkan ralat "Kumpulan tidak mempunyai atribut yang betul." Ralat ini timbul kerana fungsi spritecollide() memerlukan atribut rect pada kedua-dua sprite untuk pengesanan perlanggaran. Kumpulan tikus itu sendiri tidak mempunyai atribut rect, oleh itu ralat.
Untuk menyelesaikan isu ini, kita boleh melelar melalui sprite dalam kumpulan tikus dan menyemak klik tetikus terhadap atribut rect setiap sprite:
Sebagai alternatif, anda boleh menguji terus untuk klik pada sesuatu sprite:<code class="python">import pygame # Get the mouse cursor position mouse_pos = pygame.mouse.get_pos() # Loop through the sprites in the mice group for sprite in mice: # Check if the mouse cursor is within the sprite's rect if sprite.rect.collidepoint(mouse_pos): # Handle the click event on the sprite # ...</code>
Atas ialah kandungan terperinci Bagaimana untuk Mengesan Objek yang Diklik dalam Kumpulan Sprite dan Menangani 'AttributeError: Group has no attribute rect'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!