我有这个用箭头键控制的精灵,但不会留在屏幕边界内。出于某种原因,它只在左端停止,而不是在顶部,底部和右侧停止。
这是我到目前为止所做的:
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
答案 0 :(得分:3)
这很可能是因为您正在与==
进行比较。坐标一次增加一个以上,因此它们可能会从下方跳到超过限制并达到更大的值。尝试:
if self.rect.right > screen.get_rect().right:
self.rect.right = screen.get_rect().right
...
答案 1 :(得分:2)
您可以使用clamp_ip
,只要它在另一个矩形内,就会移动矩形