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

如何用Pygame绘制填充色与边框色不同的矩形?

更优的实现方式

你现在用两个矩形叠加的方法是可行的,不过可以通过下面两种方式优化:

1. 复用Rect对象,简化代码

把矩形区域单独定义成pygame.Rect对象,不用重复写坐标和尺寸,代码更整洁也好维护:

import pygame

pygame.init()
screen = pygame.display.set_mode((400, 400))
# 定义矩形对象
rect_area = pygame.Rect(100, 100, 100, 100)

# 先画填充矩形,再画边框
pygame.draw.rect(screen, "red", rect_area)
pygame.draw.rect(screen, "green", rect_area, 5)

# 游戏主循环部分省略...

2. 预绘Surface提升性能(适合重复渲染的场景)

如果这个矩形需要在游戏里反复画,不如先在一个独立的Surface上做好填充加边框的效果,之后只需要把这个Surface贴到屏幕上就行,能减少重复绘制的开销:

import pygame

pygame.init()
screen = pygame.display.set_mode((400, 400))

# 创建和矩形一样大的Surface
rect_surface = pygame.Surface((100, 100))
# 填充红色底色
rect_surface.fill("red")
# 在Surface上画绿色边框,直接用Surface自身的Rect就行
pygame.draw.rect(rect_surface, "green", rect_surface.get_rect(), 5)

# 之后每次要显示这个矩形,直接贴到屏幕对应位置
screen.blit(rect_surface, (100, 100))

# 游戏主循环部分省略...

要说明的是:Pygame的draw.rect本身不支持一次设置填充色和边框色,所以本质上还是得分两步画,但上面的方法能让代码更简洁或者渲染更高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 20:52:12