碰撞偵測問題:總是傳回「True」
碰撞偵測問題:總是傳回「True」
其中之一碰撞檢測函數在不應該傳回“True”時傳回“True”的最常見原因是使用了錯誤的座標資訊。在您的程式碼中,球和障礙物精靈具有額外的 x 和 y 屬性,但 Surface 物件的 get_rect() 方法不會根據這些屬性自動更新其位置。
解決方案:
self.rect = self.image.get_rect(topleft=(self.x, self.y))
要解決此問題,您應該在呼叫時使用topleft 關鍵字參數手動設定矩形的位置get_rect():
影像定位問題:始終回傳(0, 0)
預設情況下,Surface 物件的座標總是設定為 ( 0, 0),無論它顯示在螢幕上的哪個位置。將影像傳輸到遊戲顯示器時,您需要提供要繪製影像的正確座標。
解決方案:
gameDisplay.blit(self.image, self.rect)
您只需使用座標即可blitting 映像時儲存在rect 屬性中:
以上是為什麼我的 Pygame 碰撞偵測總是回傳 True,為什麼我的影像位置總是 (0, 0)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!