2016-03-31 48 views
2

in_place函數與非ip函數有什麼不同,它們爲什麼存在? 何時應該使用例如move(),inflate()以及何時使用move_ip()inflate_ip()Pygame in-place methodes

回答

4

就地功能工作,以及到位;他們更改您撥打的Rect,而非就地功能會使用相應的更改返回Rect類的新實例。

您可以隨時使用它們,而您實際上想要更改Rect,例如,你有一個Sprite,並希望移動它,你可以使用的

s = SomeSpriteClass() 
s.rect.move_ip(100, 0) 

代替

s = SomeSpriteClass() 
s.rect = s.rect.move(100, 0) 

Sprite 100像素向右移動。

如果您不想實際更改Rect,例如,您將使用非就地功能。當你只想做一些計算時,比如實現一個攝像頭功能。

+0

因爲它沒有創建並返回對象的新副本,所以'ip'函數是否也在資源上進行了保留? – amirteymuri