如何在Pygame中创建Rect变量且不在屏幕上绘制它?
如何在Pygame中创建Rect变量而不绘制到屏幕
哦,我懂你的需求了——你想生成一个Rect变量来存储矩形的位置和尺寸,但完全不想让它在屏幕上显示出来对吧?你现在用的pygame.draw.rect()其实是个绘制函数,它的核心作用是把矩形画到指定的Surface(也就是你的screen)上,虽然会返回一个Rect对象,但同时已经完成了绘制动作,这就是为什么你不想看到的矩形会出现在屏幕上。
正确的实现方式
Pygame专门提供了pygame.Rect类来直接创建矩形对象,完全不需要依赖绘制操作。你只需要直接实例化这个类,传入矩形的位置和尺寸参数就可以了:
import pygame from pygame.locals import * pygame.init() screen = pygame.display.set_mode((50, 50)) # 直接创建Rect对象,不会在屏幕上绘制任何内容 myRect = pygame.Rect(0, 0, 20, 20) while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() quit()
额外补充说明
pygame.Rect的参数格式是(left, top, width, height),分别对应矩形左上角的x坐标、y坐标,以及矩形的宽度和高度。- 你也可以用更直观的关键字参数来创建,可读性更强:
myRect = pygame.Rect(left=0, top=0, width=20, height=20) - 生成的
myRect对象可以用来做很多事,比如碰撞检测、调整位置(比如myRect.x += 5)、修改尺寸等,这些操作都不会触发屏幕绘制,除非你主动调用pygame.draw.rect()并传入这个Rect对象。
内容的提问来源于stack exchange,提问作者Asher Matheson
相关产品推荐
相关产品推荐

