You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pygame中根据屏幕分辨率居中图像并添加边距

解决Pygame图像自适应坐标问题

核心逻辑

要实现图像y轴居中、x轴留固定边距适配任意分辨率,核心是基于屏幕尺寸和图像实际大小动态计算坐标,彻底替换固定值写法。

具体实现步骤

1. 定义统一边距

可选择固定像素值(视觉更稳定)或屏幕比例(适配大屏更自然):

# 固定边距(推荐,比如20像素)
MARGIN = 20
# 或按屏幕宽度比例(比如2%)
# MARGIN = screen_width * 0.02

2. 计算y轴居中坐标

利用屏幕高度和图像高度的差值一半来实现居中:

# 假设已完成缩放的图像为img1、img2
img1_y = (screen_height // 2) - (img1.get_height() // 2)
img2_y = (screen_height // 2) - (img2.get_height() // 2)

3. 计算x轴边距坐标

左右图像分别贴紧屏幕两侧,预留边距:

# 左侧图像x坐标(直接取边距值)
img1_x = MARGIN
# 右侧图像x坐标(屏幕宽度 - 图像宽度 - 边距)
img2_x = screen_width - img2.get_width() - MARGIN

完整可运行代码片段

import pygame

pygame.init()

# 获取当前屏幕分辨率(也可自定义窗口尺寸)
screen_info = pygame.display.Info()
screen_width, screen_height = screen_info.current_w, screen_info.current_h
screen = pygame.display.set_mode((screen_width, screen_height), pygame.FULLSCREEN)

# 加载并缩放图像(替换成你的图像路径和缩放逻辑)
img1 = pygame.image.load("left_image.png")
img2 = pygame.image.load("right_image.png")
# 示例:按固定比例缩放,你可以替换成自己的适配逻辑
scale_ratio = 0.3
img1 = pygame.transform.scale(img1, (int(img1.get_width()*scale_ratio), int(img1.get_height()*scale_ratio)))
img2 = pygame.transform.scale(img2, (int(img2.get_width()*scale_ratio), int(img2.get_height()*scale_ratio)))

# 定义边距
MARGIN = 20

# 动态计算坐标
img1_pos = (MARGIN, (screen_height // 2) - (img1.get_height() // 2))
img2_pos = (screen_width - img2.get_width() - MARGIN, (screen_height // 2) - (img2.get_height() // 2))

# 主循环
running = True
while running:
    screen.fill((255, 255, 255))
    screen.blit(img1, img1_pos)
    screen.blit(img2, img2_pos)
    
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
            running = False
    
    pygame.display.flip()

pygame.quit()

注意点

  • 必须先完成图像缩放,再计算坐标,否则图像尺寸错误会导致位置偏移。
  • 固定边距适合小屏设备,比例边距适合大屏场景,根据需求选择即可。

内容的提问来源于stack exchange,提问作者Diana Mele

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 12:55:16