Pygame中如何使用指定颜色填充显示窗口的特定区域?
Pygame指定矩形区域填充颜色实现方法
screen.fill()本身就支持局部填充,不需要额外引入其他绘制方法,只要在调用时传入第二个可选的矩形范围参数即可,只会填充你指定的矩形区域。
实现逻辑
Pygame中描述矩形的参数格式为(矩形左上角x坐标, 矩形左上角y坐标, 矩形宽度, 矩形高度),针对你700*700的窗口,要填充底部区域的话:
- 区域从窗口最左侧开始,所以左上角x坐标为0
- 区域左上角y坐标 = 窗口总高度 - 底部区域的高度
- 区域宽度和窗口宽度一致,为
displayW - 区域高度可以根据你的需求自行设定
完整示例代码
import pygame # 你已有的窗口尺寸定义 displayW = 700 displayH = 700 screen = pygame.display.set_mode((displayW, displayH)) # 先填充整个窗口的上层背景色,比如天蓝色,不需要可以删掉 screen.fill((135, 206, 235)) # 自定义底部区域高度,比如设为120像素,可按需修改 bottom_area_height = 120 # 拼接得到底部填充区域的矩形参数 bottom_rect = (0, displayH - bottom_area_height, displayW, bottom_area_height) # 填充底部区域为绿色,RGB值(0,255,0)可按需调整绿色深浅 screen.fill((0, 255, 0), bottom_rect) # 刷新显示,保持你原有主循环里的显示更新逻辑即可 pygame.display.flip()
注意事项
- 填充顺序不要搞反:如果要同时填充全屏背景和底部区域,一定要先执行全屏填充,再执行局部底部填充,否则局部填充的内容会被全屏填充覆盖
- 这个方法仅适用于矩形区域填充,如果要填充不规则形状,需要对应使用
pygame.draw下的多边形、圆形等绘制方法 - 用
fill自带的区域参数做局部矩形填充,比单独绘制矩形的性能更好,是官方推荐的写法
内容的提问来源于stack exchange,提问作者Blu
相关产品推荐
相关产品推荐

