如何使用Pygame Rect

时间:2013-10-06 23:39:42

标签: python function pygame rect

我一直在试验Pygame,并遇到了一个我无法找到答案的问题。在this paste中,展示了我的基本游戏框架。如何正确完成ballSnapLeft()定义?

编辑:我不是在寻找我的代码要完成,但我正在寻找有人解释'Rect'类(?)如何工作以及如何应用它。

Edit2:我试图使用x和y坐标来做到这一点,但我认为有一种更简单的方法可以实际工作,而不是使用粗暴坐标。

2 个答案:

答案 0 :(得分:4)

来自Making Games With Python and Pygame

  

myRect.left 左侧X坐标的int值   长方形。

     

<强> 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

答案 1 :(得分:2)

执行ballRect.right = playerRect.left - (0, 1)时是否收到错误?

ballRect.rightballRect.left以及相关的topbottomwidthheight值均为int类型,不能添加或减去元组。

您可能需要查看pygame.Rect文档,并考虑使用pygame.Rect.move(x,y),它会为您移动矩形的坐标。

值得注意的是,如果您更改myRect.topleft,那么相应的topleftbottom等值将更改为以便rect翻译并保留其大小。