Isu Pengesanan Perlanggaran: Sentiasa Mengembalikan 'Benar'
Salah satu daripada sebab yang paling biasa mengapa fungsi pengesanan perlanggaran mengembalikan 'Benar' apabila ia tidak sepatutnya menggunakan maklumat koordinat yang salah. Dalam kod anda, sprite Ball dan Obstacle mempunyai atribut x dan y tambahan, tetapi kaedah get_rect() objek Surface tidak mengemas kini kedudukannya secara automatik berdasarkan atribut ini.
Penyelesaian:
Untuk menyelesaikan isu ini, anda harus menetapkan kedudukan segi empat tepat secara manual menggunakan argumen kata kunci topleft semasa memanggil get_rect():
self.rect = self.image.get_rect(topleft=(self.x, self.y))
Isu Kedudukan Imej: Sentiasa Mengembalikan (0, 0)
Secara lalai, koordinat objek Surface sentiasa ditetapkan kepada ( 0, 0), tidak kira di mana ia dipaparkan pada skrin. Apabila memancarkan imej ke paparan permainan, anda perlu menyediakan koordinat yang betul di mana anda mahu ia dilukis.
Penyelesaian:
Anda boleh menggunakan koordinat dengan mudah disimpan dalam atribut rect apabila menyelitkan imej:
gameDisplay.blit(self.image, self.rect)
Tambahan Petua:
Atas ialah kandungan terperinci Mengapa Pengesanan Perlanggaran Pygame Saya Sentiasa Kembali Benar, dan Mengapa Kedudukan Imej Saya Sentiasa (0, 0)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!