I'm trying to display a custom png file in a pygame screen, but when I call
screen.blit(image, screen.get_rect().center)
it centers the image's upper left corner on the coordinates. How can I fix this so that the center of the image is on the coordinates?
Already referenced the following stackoverflow answer, but it didn't change my image position: How to centre an image in pygame?
See How to center an image in the middle of the window in pygame? . If you want to center the image in the middle of the screen, you need to get the bounding rectangle of the image and set the center of the rectangle to the center of the screen:
screen.blit(image, screen.get_rect().center)
screen.blit(image, image.get_rect(center = screen.get_rect().center))
The same in single steps:
screen_rect = screen.get_rect()
screen_center = screen_rect.center
image_rect = image.get_rect()
image_rect.center = screen_center
screen.blit(image, image_rect)
Minimal example:
import pygame
pygame.init()
screen = pygame.display.set_mode((400, 400))
clock = pygame.time.Clock()
image = pygame.image.load("image.png")
run = True
while run:
clock.tick(100)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
screen.fill(0)
screen.blit(image, image.get_rect(center = screen.get_rect().center))
pygame.display.flip()
pygame.quit()
exit()
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.