Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengesan Klik Tetikus pada Sprite dalam Pygame?
Pengesanan Klik Tetikus Pygame
Dalam Pygame, pengesanan klik tetikus pada sprite memerlukan pemeriksaan manual semasa gelung utama. Begini cara anda boleh melaksanakan fungsi ini:
Pendekatan Gelung Utama:
Kod Contoh:
while ...: ev = pygame.event.get() for event in ev: if event.type == pygame.MOUSEBUTTONUP: pos = pygame.mouse.get_pos() clicked_sprites = [s for s in sprites if s.rect.collidepoint(pos)] # Perform action on clicked sprites
Nota: Pygame tidak menyediakan pengaturcaraan dipacu peristiwa untuk senario ini.
Alternatif Pendekatan:
Walaupun kurang optimum, anda juga boleh menyemak kedudukan kursor tetikus dan keadaan kekunci yang ditekan. Walau bagaimanapun, pendekatan ini memerlukan pengendalian bendera tambahan untuk mengelakkan pencetakan berterusan:
handled = False while ...: if pygame.mouse.get_pressed()[0] and mysprite.rect.collidepoint(pygame.mouse.get_pos()) and not handled: print("You have opened a chest!") handled = pygame.mouse.get_pressed()[0]
Kaedah Kelas Sprite:
Anda juga boleh menentukan kaedah dalam kelas MySprite tersuai untuk semak klik tetikus:
class MySprite(Sprite): def is_clicked(self): return pygame.mouse.get_pressed()[0] and self.rect.collidepoint(pygame.mouse.get_pos())
Atas ialah kandungan terperinci Bagaimana untuk Mengesan Klik Tetikus pada Sprite dalam Pygame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!