<p>您只需更改rect的宽度和高度(<code>w</code>和<code>h</code>属性)。当鼠标移动时(队列中添加了一个<code>MOUSEMOTION</code>事件),如果选择了rect,则将相对移动<code>event.rel</code>添加到宽度和高度。在</p>
<pre><code>import pygame as pg
pg.init()
screen = pg.display.set_mode((640, 480))
clock = pg.time.Clock()
rect = pg.Rect(100, 100, 161, 100)
rect_selected = False
done = False
while not done:
for event in pg.event.get():
if event.type == pg.QUIT:
done = True
elif event.type == pg.MOUSEBUTTONDOWN:
# Set rect_selected to True when the user clicks on the rect.
if rect.collidepoint(event.pos):
rect_selected = True
elif event.type == pg.MOUSEBUTTONUP:
rect_selected = False
elif event.type == pg.MOUSEMOTION:
if rect_selected:
# Simply adjust the width and the height of the screen
# by subtracting the relative mouse movement.
rect.w += event.rel[0]
rect.h += event.rel[1]
# 10*10 px is the minimal size, so that the rect can
# still be clicked.
rect.w = max(rect.w, 10)
rect.h = max(rect.h, 10)
screen.fill((30, 30, 30))
pg.draw.rect(screen, (0, 100, 250), rect)
pg.display.flip()
clock.tick(30)
</code></pre>
<hr/>
<p>如果您想用多个rect来完成这个任务,您只需将单击的rect分配给一个变量(在本例中是<code>selected_rect</code>),然后缩放它。在</p>
^{pr2}$