在窗口Pygame中保存一个精灵

时间:2013-06-22 03:04:01

标签: python pygame

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

这是我到目前为止所做的:

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

2 个答案:

答案 0 :(得分:3)

这很可能是因为您正在与==进行比较。坐标一次增加一个以上,因此它们可能会从下方跳到超过限制并达到更大的值。尝试:

if self.rect.right > screen.get_rect().right:
    self.rect.right = screen.get_rect().right
...

答案 1 :(得分:2)

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