我有一個Pygame的精靈子類的方法,定義爲這樣:Python:爲什麼一個方法的行爲與添加的參數不同?
def walk(self):
"""move across screen"""
displacement = self.rect.move((self.move, 0))
if self.rect.left < self.area.left or self.rect.right > self.area.right:
self.move = -self.move
displacement = self.rect.move((self.move, 0))
self.rect = displacement
我修改它,添加一個參數speed_x
,現在的節目是斷開的。
def walk(self, speed_x):
"""move across screen"""
displacement = self.rect.move((speed_x, 0))
if self.rect.left < self.area.left or self.rect.right > self.area.right:
speed_x = -speed_x
displacement = self.rect.move((speed_x, 0))
self.rect = displacement
之前,我這樣調用方法:
def update(self):
self.walk()
現在我做:
def update(self):
self.walk(self.move)
爲什麼不工作的呢?
啊,這是有道理的。謝謝。每次對象(圖像)碰到屏幕邊緣時,都不會改變方向,而只會在圖像的邊緣卡住圖像。這就是它被打破的原因。 – SteveStifler 2010-05-26 14:13:18
@Steve,不客氣,總是樂於助人! – 2010-05-26 14:24:41