对于我的allevel课程,我正在用pygame做一个游戏。我遇到了一个问题,在左边和顶部阻止我的精灵通过边界,但在右边和底部,当我通过那个障碍时,精灵出现在对面的边缘。我希望这是有意义的。这是我目前为这一节准备的代码。x1和y1是我的第一个精灵。s坐标和x2和y2是我的第二个。
if x1 > WIDTH - Char1WIDTH or x1 < 0:
x1 = 0
if y1 > HEIGHT - Char1HEIGHT or y1 <0:
y1 = 0
if x2 > WIDTH - Char2WIDTH or x2 < 0:
x2 = 0
if y2 > HEIGHT - Char2HEIGHT or y2 <0:
y2 = 0
1条答案
按热度按时间w8rqjzmb1#
如果子画面在右边,您需要将子画面与窗口的右边缘对齐;如果子画面在底部,您需要将子画面与窗口的底部对齐:
分别
但是我推荐使用
pygame.Rect
对象和clamp_ip
。请分别参见pygame.Rect.clamp()
pygame.Rect.clamp_ip()
:返回一个新的矩形,该矩形已完全移动到参数Rect内部。