我一直在试验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
翻译并保留其大小改变。