在 Pygame 和 Python 2.7 中,如何在由一组坐标表示的某个点处对矩形进行 blit?
我知道我可以使用这个:
screen.blit(img.image, img.rect.topleft)
但我希望矩形位于屏幕上的精确点。
在 Pygame 和 Python 2.7 中,如何在由一组坐标表示的某个点处对矩形进行 blit?
我知道我可以使用这个:
screen.blit(img.image, img.rect.topleft)
但我希望矩形位于屏幕上的精确点。
如果您需要矩形的左上角点(34,57)
,您可以这样做
screen.blit(img.image, (34,57) )
或这个
img.rect.topleft = (34,57)
screen.blit(img.image, img.rect)
或这个
img.rect.x = 34
img.rect.y = 57
screen.blit(img.image, img.rect)
如果您需要矩形的中心点(34,57)
img.rect.center = (34,57)
screen.blit(img.image, img.rect)
如果您需要在屏幕中心显示矩形:(如果您需要在屏幕中心
显示文本(例如“PAUSE”)或在矩形中心显示文本以创建按钮,则特别有用)
img.rect.center = screen.get_rect().center
screen.blit(img.image, img.rect)
如果您需要矩形触摸屏幕的右边框:
img.rect.right = screen.get_rect().right
screen.blit(img.image, img.rect)
如果您需要屏幕左下角的矩形:
img.rect.bottomleft = screen.get_rect().bottomleft
screen.blit(img.image, img.rect)
你还有更多 - 见pygame.Rect
x,y
top, left, bottom, right
topleft, bottomleft, topright, bottomright
midtop, midleft, midbottom, midright
center, centerx, centery
使用上面的元素它不会改变width
和height
.
如果您更改x
(或其他值),那么您会自动获得 的新值left
,right
以及其他值。
顺便说一句:如您所见,您可以img.rect
在blit()
顺便说一句:您也可以这样做:(例如在__init__
):
img.rect = img.image.get_rect(center=screen.get_rect().center)
在屏幕上居中对象
顺便说一句:您也可以使用它在精确的点Surface
上对图像/其他图像进行 blit。Surface
您可以将文本放在某个表面的中心(例如:按钮),然后将该表面放在屏幕的右下角
从您的代码:
screen.blit(img.image, img.rect.topleft)
会将图像放在 (0, 0) 处,因为矩形是从尚未绘制到显示表面的图像中获得的。如果要在特定坐标处绘制,只需执行以下操作:
screen.blit(image, (x, y)) #x and y are the respective position coordinates