Mengesan Perlanggaran dalam Pygame
Dalam permainan di mana objek perlu menangkap item yang jatuh, mengesan perlanggaran adalah penting. Ini boleh dicapai menggunakan objek Rect Pygame dan kaedah colliderect().
Langkah 1: Buat Rects untuk Objek
Tentukan segi empat tepat terikat mangkuk dan item jatuh sebagai objek Rect , menyediakan koordinat x, y, lebar dan ketinggian.
Langkah 2: Gunakan Kaedah colliderect()
Untuk menguji perlanggaran, gunakan kaedah colliderect() pada objek segi empat tepat. Jika segi empat tepat bertindih, ini bermakna perlanggaran telah berlaku.
Langkah 3: Dapatkan Sempadan Segi Empat untuk Imej
Untuk imej, gunakan kaedah get_rect() untuk mendapatkan semula segi empat tepat. Walau bagaimanapun, ambil perhatian bahawa lokasi imej mesti dinyatakan sebagai hujah kata kunci kerana segi empat tepat yang dikembalikan sentiasa bermula pada (0, 0).
Nota Tambahan:
Contoh Kod:
# Create Rect objects player_rect = player_img.get_rect(topleft=(x, y)) thing_rect = things_added[i].get_rect(topleft=things_cor[i]) # Check for collision if player_rect.colliderect(thing_rect): print("Hit!") # Player movement if passed_time >= start_time: x += x_change # Boundary check if x < 0: x = 0 elif x > display_width - player_width: x = display_width - player_width # Item movement if passed_time >= start_time: for i in range(len(things_cor)): things_cor[i][1] += y_change # Reset item position when it reaches the bottom if things_cor[i][1] > display_height: # Update item information things_cor[i][1] = random.randint(-2000, -1000) things_cor[i][0] = random.randint(0, display_width) things_added[i] = random.choice(thing_imgs) # Add new item things_added.append(random.choice(thing_imgs)) if len(things_added) < 6: things_cor.append([random.randint(0, display_width), -10])
Atas ialah kandungan terperinci Bagaimana untuk Mengesan Perlanggaran Antara Item Jatuh dan Pemain dalam Pygame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!