Had Pergerakan PyGame Rect
Dalam PyGame, objek rect, yang mewakili kawasan pada skrin, hanya membenarkan data integral untuk koordinat. Had ini boleh menyebabkan pergerakan objek tersentak apabila menggunakan nilai titik terapung untuk halaju.
Penyelesaian: Storan Kedudukan Asing dan Kemas Kini Tepat
Untuk mengatasi had ini, seseorang boleh simpan kedudukan objek menggunakan pembolehubah titik terapung sambil menyegerakkan objek tepat dengan membundarkan koordinat dan mengemas kini lokasinya dengan sewajarnya. Pendekatan ini memastikan pergerakan objek yang tepat sambil mengekalkan nilai kamiran yang diperlukan oleh objek tepat.
Pelaksanaan
Sebagai contoh, dalam kod di bawah, RedObject menyimpan kedudukannya dalam objek lurus secara langsung, membawa kepada pergerakan yang tidak tepat. GreenObject, walau bagaimanapun, menyimpan kedudukannya secara berasingan dan mengemas kini objek tepat dengan membundarkan koordinat:
class RedObject(pygame.sprite.Sprite): def update(self, window_rect): self.rect.centerx += self.move.x * 2 self.rect.centery += self.move.y * 2 class GreenObject(pygame.sprite.Sprite): def update(self, window_rect): self.pos += self.move * 2 self.rect.center = round(self.pos.x), round(self.pos.y)
Dengan memisahkan storan kedudukan dan kemas kini tepat, GreenObject mencapai pergerakan cecair yang licin walaupun menggunakan nilai titik terapung untuk halaju.
Atas ialah kandungan terperinci Bagaimana untuk Mencapai Pergerakan Objek Licin dalam PyGame dengan Halaju Titik Terapung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!