我一直在試驗Pygame,並遇到了一個我找不到答案的問題。在this paste中,展示了我的基本遊戲框架。我如何正確完成我的ballSnapLeft()
定義?如何使用Pygame Rect
編輯:我不是在尋找我的代碼來完成,但我正在尋找人來解釋'Rect'類(?)是如何工作的,以及如何應用它。
編輯2:我試圖使用x和y座標來這樣做,但我認爲有一個更簡單的方法可以實際工作,而不是使用粗體座標。
我一直在試驗Pygame,並遇到了一個我找不到答案的問題。在this paste中,展示了我的基本遊戲框架。我如何正確完成我的ballSnapLeft()
定義?如何使用Pygame Rect
編輯:我不是在尋找我的代碼來完成,但我正在尋找人來解釋'Rect'類(?)是如何工作的,以及如何應用它。
編輯2:我試圖使用x和y座標來這樣做,但我認爲有一個更簡單的方法可以實際工作,而不是使用粗體座標。
從Making Games With Python and Pygame:所述 矩形的左側的
myRect.left所述的int值X座標。
myRect.right 該矩形右側的X座標的int值。
myRect.top 矩形頂端的Y座標的int值。
myRect.bottom 底部Y座標的int值。
因爲所有這些屬性都返回整數,這可能就是爲什麼你的代碼不工作。
此外,如果您的目標ballSnapLeft()
將球移動到遠離球員的位置,ballRect.right = playerRect.left - distance
只會改變矩形的X座標。爲了使球也在Y座標中移動,你可以做類似
def ballSnapTop():
ballRect.top = playerRect.bottom - distance
在執行ballRect.right = playerRect.left - (0, 1)
時出現錯誤?
ballRect.right
和ballRect.left
,與相關top
,bottom
,width
,height
值,是int
類型一起,不能有元組添加或從中減去。
您可能需要查看pygame.Rect文檔,並考慮使用pygame.Rect.move(x,y)
,它將爲您移動矩形的座標。
另外值得一提的是,如果你改變,例如,myRect.topleft
,那麼相應的top
,left
,bottom
等..值將使得rect
翻譯並保留其大小改變。