飛機大戰中rect屬性儲存小數值解釋

襪子血發表於2020-10-30

**pygam飛機大戰中關於rect的center屬性等只能儲存整數問題的解釋,
**在這裡插入圖片描述
首先要建立一個能儲存浮點數的變數,並且這個變數得等於self.rect.centerx的值,任何變數都能儲存浮點數。

  1. 要滿足這倆個條件,為什麼不能直接self.center = self.rect.centerx,因為這樣self.center會指向self.rect.centerx。
  2. 有沒有除了float()的方法,既使倆者相等值相等又不能直接指向self.rect.centerx。
    解答 :沒有
    3.使用float()方法發生了什麼,會重新開闢塊記憶體,存放小數版的self.rect.centerx的值(因為整數是不可變物件)。這時候飛船移動更新的值是self.center,self.rect.centerx的值並沒有改變。
    4.所以最後需要 self.rect.centerx = self.center.將其改變的值重新賦給self.rect.centerx,它會只取整數部分,不過影響不大

相關文章