Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Mengesan Klik Tetikus pada Sprite dalam Pygame?

Bagaimanakah Saya Boleh Mengesan Klik Tetikus pada Sprite dalam Pygame?

DDD
Lepaskan: 2024-12-22 02:28:15
asal
699 orang telah melayarinya

How Can I Detect Mouse Clicks on Sprites in Pygame?

Pengesanan Mengklik Tetikus Pygame

Mengesan klik tetikus pada sprite dalam Pygame ialah tugas biasa untuk mencipta permainan interaktif.

Untuk melaksanakan fungsi ini, gunakan pendekatan berikut dalam permainan utama anda gelung:

  1. Dapatkan semua acara: ev = pygame.event.get() mendapatkan semula semua peristiwa yang telah berlaku sejak lelaran terakhir gelung utama.
  2. Semak acara tetikus: Dalam gelung untuk acara dalam ev:, periksa setiap acara untuk menentukan sama ada ia peristiwa klik tetikus (cth., MOUSEBUTTONUP atau MOUSEBUTTONDOWN).
  3. Dapatkan kedudukan tetikus: pos = pygame.mouse.get_pos() mengembalikan kedudukan semasa penuding tetikus.
  4. Dapatkan sprite yang diklik: Gunakan pemahaman senarai untuk mengenal pasti sprite (sprite) yang berada di bawah penuding tetikus: clicked_sprites = [s untuk s dalam sprite jika s.rect.collidepoint(pos)].
  5. Kendalikan sprite yang diklik: Lakukan tindakan yang diingini pada clicked_sprites.

Pendekatan ini membolehkan anda menyemak klik tetikus pada sprite setiap lelaran gelung utama. Pygame tidak menyediakan pengaturcaraan dipacu peristiwa, jadi anda perlu mengendalikan sendiri klik tetikus menggunakan kaedah ini.

Pendekatan alternatif, yang mempunyai potensi isu, melibatkan sentiasa menyemak kedudukan tetikus dan keadaan butang:

if pygame.mouse.get_pressed()[0] and mysprite.rect.collidepoint(pygame.mouse.get_pos()):
  print ("You have opened a chest!")
Salin selepas log masuk

Untuk mengelakkan pencetakan berterusan mesej ini, anda perlu menjejaki sama ada klik tetikus telah dikendalikan sebelum ini. Penyelesaian yang lebih elegan ialah subkelas Sprite dan cipta kaedah is_clicked() yang mengembalikan sama ada sprite diklik. Akhirnya, pendekatan pertama biasanya disyorkan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Klik Tetikus pada Sprite dalam Pygame?. 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