任务目标:将图片放在屏幕正中央的两种方法

方法一:数学方法

使用方法:使用 image.get_rect()方法获得图像的长(.right)和宽(.bottom),利用数学方法计算出中心点位置并赋值给图像放置位置。

实现代码:

import pygame,sys

pygame.init()
screen =pygame.display.set_mode([640,480])
pygame.display.set_caption("按键测试")
bg_color= [255,255,255]
screen.fill(bg_color)
image = pygame.image.load("D:\pythonstudy\pygameStudy\skyrobot\images\ship.bmp")
rect = image.get_rect()

while True:
    #方法一:将图片放在屏幕正中央
    rect_x = (screen.get_width()-rect.right)/2
    rect_y = (screen.get_height()-rect.bottom)/2
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
    screen.blit(image, [rect_x,rect_y])
    pygame.display.flip()

方法二:使用center属性

方法说明:获得屏幕的中心点坐标,直接把该坐标赋值给图像的中心点坐标

代码实现:

import pygame,sys

pygame.init()
screen =pygame.display.set_mode([640,480])
pygame.display.set_caption("按键测试")
bg_color= [255,255,255]
screen.fill(bg_color)
image = pygame.image.load("D:\pythonstudy\pygameStudy\skyrobot\images\ship.bmp")
rect = image.get_rect()
screen_rect = screen.get_rect()

while True:
    #方法二:将图片放在屏幕正中央
    rect.center = screen_rect.center
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
    screen.blit(image, rect)
    pygame.display.flip()
    print(rect.center)

 

更多推荐

python自学——pygame基础——关于pygame中的图像位置