1

我一直在试验 Pygame,遇到了一个我找不到答案的问题。在本贴中,展示了我的基本游戏框架。我怎样才能完成我的ballSnapLeft()定义?

编辑:我不是在寻找要完成的代码,而是在寻找人来解释“矩形”类(?)是如何工作的,以及如何应用它。

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

4

2 回答 2

6

使用 Python 和 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
于 2013-10-07T00:12:56.327 回答
2

执行时是否出现错误ballRect.right = playerRect.left - (0, 1)

ballRect.rightballRect.left以及相关的top, bottom, width,height值是int类型,不能从它们中添加或减去元组。

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

还值得注意的是,例如,如果您更改 ,myRect.topleft则相应top的 、leftbottom等值也会更改,以便rect翻译并保留其大小。

于 2013-10-07T00:02:38.743 回答