1

我有这个用箭头键控制的精灵,但不会停留在屏幕边界内。由于某种原因,它只停在左端,而不是顶部、底部和右侧。

这是我到目前为止所拥有的:

if self.rect.right == screen.get_rect().right:
    self.rect.right = self.rect.right - 10
if self.rect.left == screen.get_rect().left:
    self.rect.right = self.rect.right + 10
if self.rect.top == screen.get_rect().top:
    self.rect.top = self.rect.top - 10
if self.rect.bottom == screen.get_rect().bottom:
    self.rect.bottom = self.rect.bottom + 10
4

2 回答 2

3

这很可能是因为您正在与==. 坐标一次增加不止一个,因此它们可能会从下方跳到超出限制并达到更大的值。尝试:

if self.rect.right > screen.get_rect().right:
    self.rect.right = screen.get_rect().right
...
于 2013-06-22T09:31:56.453 回答
2

您可以使用clamp_ip,只要它在另一个矩形内,它就会移动矩形

于 2013-06-22T09:04:18.873 回答