Pygame Display显示模�详解
Pygame 使用
体验过电脑游æˆ�的朋å�‹ä»¬éƒ½çŸ¥é�“,当è¿�行程åº�å�Žä¼šåœ¨ç”µè„‘桌é�¢ä¸Šå‡ºçŽ°ä¸€ä¸ªæ¸¸æˆ�的主窗å�£ï¼Œè¿™ä¸ªä¸»çª—å�£çš„æœ¬è´¨æ˜¯ä¸€ä¸ª surface 对象,把ç�†è§£ä¸ºç”»å¸ƒã€�ç”»æ�¿ã€�白纸在å�ˆé€‚ä¸�过了,它相当于一个载体,用于承载一切游æˆ�æ‰€ç”¨åˆ°çš„å…ƒç´ ã€‚å�‡å¦‚您需è¦�将一段文本方放置到主窗å�£ä¸ï¼Œé‚£ä¹ˆæ‚¨éœ€è¦�先创建一个包å�«æ–‡æœ¬çš„ surface 对象,之å�Žå†�å°†å®ƒé™„åŠ åˆ°ä¸»çª—å�£ä¸Šã€‚简å�•çš„ç�†è§£ï¼Œå°±æ˜¯å°†ä¸€å¼ 图 A 粘贴到å�¦ä¸€å¼ 图 B 上。
主窗å�£ï¼ˆscreen)相当于游æˆ�程åº�ä¸å°ºå¯¸æœ€å¤§çš„ Surface 对象,在这个最大的“画布”ä¸ï¼Œæˆ‘们还å�¯ä»¥æ·»åŠ å…¶ä»–“å°�”çš„ Surface 对象,这些对象以矩形的形å¼�å˜åœ¨äºŽä¸»çª—å�£ä¸ï¼Œå®ƒä»¬å…±å�Œç»„æˆ�了一个游æˆ�程åº�。通过下列方法å�¯ä»¥å°†ä¸€ä¸ª Surface 对象粘贴至主窗å�£ä¸Šï¼š
除了创建游æˆ�的主窗å�£ä¹‹å¤–,display 模å�—还æ��供了许多的和“显示”相关的方法,比如设置游æˆ�窗å�£çš„å��称,如下表所示

图1:Pygame程��行结果
pygame.display 模å�—还æ��供了一些和“显示”相关的其他方法,如下表所示:
pygame.display显示模å�—ä¸çš„æ–¹æ³•创建游æˆ�的主窗å�£ï¼šscreen = pygame.display.set_mode(size=(),flags=0)上述函数有两个å�‚数常用å�‚数:
- size:元组�数,用�设置主窗�的大�
- flagsï¼šåŠŸèƒ½æ ‡å¿—ä½�,表示创建的主窗å�£æ ·å¼�,比如创建全å±�窗å�£ã€�æ— è¾¹æ¡†çª—å�£ç‰ï¼Œflags å�‚数值è§�下表。
| æ ‡å¿—ä½� | 功能 |
|---|---|
| pygame.FULLSCREEN | 创建一个全�窗�。 |
| pygame.HWSURFACE | åˆ›å»ºä¸€ä¸ªç¡¬ä»¶åŠ é€Ÿçª—å�£ï¼Œå¿…须和 FULLSCREEN å�Œæ—¶ä½¿ç”¨ã€‚ |
| pygame.OPENGL | 创建一个 OPENGL 渲染窗�。 |
| pygame.RESIZABLE | 创建一个�以改�大�的窗�。 |
| pygame.DOUBLEBUF | 创建一个�缓冲区窗�,建议在 HWSURFACE 或者 OPENGL 时使用。 |
| pygame.NOFRAME | 创建一个没有边框的窗�。 |
体验过电脑游æˆ�的朋å�‹ä»¬éƒ½çŸ¥é�“,当è¿�行程åº�å�Žä¼šåœ¨ç”µè„‘桌é�¢ä¸Šå‡ºçŽ°ä¸€ä¸ªæ¸¸æˆ�的主窗å�£ï¼Œè¿™ä¸ªä¸»çª—å�£çš„æœ¬è´¨æ˜¯ä¸€ä¸ª surface 对象,把ç�†è§£ä¸ºç”»å¸ƒã€�ç”»æ�¿ã€�白纸在å�ˆé€‚ä¸�过了,它相当于一个载体,用于承载一切游æˆ�æ‰€ç”¨åˆ°çš„å…ƒç´ ã€‚å�‡å¦‚您需è¦�将一段文本方放置到主窗å�£ä¸ï¼Œé‚£ä¹ˆæ‚¨éœ€è¦�先创建一个包å�«æ–‡æœ¬çš„ surface 对象,之å�Žå†�å°†å®ƒé™„åŠ åˆ°ä¸»çª—å�£ä¸Šã€‚简å�•çš„ç�†è§£ï¼Œå°±æ˜¯å°†ä¸€å¼ 图 A 粘贴到å�¦ä¸€å¼ 图 B 上。
主窗å�£ï¼ˆscreen)相当于游æˆ�程åº�ä¸å°ºå¯¸æœ€å¤§çš„ Surface 对象,在这个最大的“画布”ä¸ï¼Œæˆ‘们还å�¯ä»¥æ·»åŠ å…¶ä»–“å°�”çš„ Surface 对象,这些对象以矩形的形å¼�å˜åœ¨äºŽä¸»çª—å�£ä¸ï¼Œå®ƒä»¬å…±å�Œç»„æˆ�了一个游æˆ�程åº�。通过下列方法å�¯ä»¥å°†ä¸€ä¸ª Surface 对象粘贴至主窗å�£ä¸Šï¼š
scrren.blit(source, dest, area=None, special_flags = 0)下�对上述�数�简�的介�:
- source:表示�粘贴的 Surface 对象。
- dest:主窗å�£ä¸çš„ä¸€ä¸ªæ ‡è¯†çš„å��æ ‡ä½�置,å�¯ä»¥æŽ¥å�—一个 (x,y) 元组,或者 (x,y,width,height) 元组,也å�¯ä»¥æ˜¯ä¸€ä¸ª Rect 对象;
- area:接å�—一个 Rect 对象,默认为 None,如果æ��供该å�‚æ•°åˆ™ç›¸å½“äºŽæŠ å›¾æ“�作,å�³åœ¨å±�幕的指定区域显示想è¦�的内容;
- special_flags:å�¯é€‰å�‚数,它是 Pygame.1.8 版本新增的功能,用于指定对应ä½�置颜色的混å�ˆæ–¹å¼�,å�‚数值有 BLEND_RGBA_ADDã€�BLEND_SUB ç‰ã€‚如果ä¸�æ��供该å�‚数的情况下,默认使用 source 的颜色覆盖 screen 的颜色。
除了创建游æˆ�的主窗å�£ä¹‹å¤–,display 模å�—还æ��供了许多的和“显示”相关的方法,比如设置游æˆ�窗å�£çš„å��称,如下表所示
import sys
import pygame
#使用pygame之�必须�始化
pygame.init()
#设置主�窗�
screen = pygame.display.set_mode((400,400))
#填充主窗�的背景颜色,�数值RGB(颜色元组)
screen.fill((156,156,156))
#设置窗å�£æ ‡é¢˜
pygame.display.set_caption('cè¯è¨€ä¸æ–‡ç½‘')
# 如果没有下列主循环代ç �,è¿�行结果会一闪而过
while True:
# 循环获�事件,监�事件
for event in pygame.event.get():
# 判æ–用户是å�¦ç‚¹äº†å…³é—按钮
if event.type == pygame.QUIT:
#�载所有模�
pygame.quit()
#终æ¢ç¨‹åº�
sys.exit()
#更新�幕内容
pygame.display.flip()
程�的�行结果如下所示:
图1:Pygame程��行结果
pygame.display 模å�—还æ��供了一些和“显示”相关的其他方法,如下表所示:
| 方法�称 | 说明 |
|---|---|
| pygame.display.get_surface() | 获�当�显示的 Surface 对象。 |
| pygame.display.flip() | 更新整个待显示的 Surface 对象到�幕上。 |
| pygame.display.update() | 更新部分软件界�显示。 |
| pygame.display.Info() | 产生一个 VideoInfo 对象,包�了显示界�的相关信�。 |
| pygame.display.set_icon() | 设置左上角的游æˆ�å›¾æ ‡ï¼Œå›¾æ ‡å°ºå¯¸å¤§å°�为 32*32。 |
| pygame.display.iconify() | 将显示的主窗�� Surface 对象最�化,或者��。 |
| pygame.display.get_active() | 当�显示界�显示在�幕上时返回 True,如果窗�被��和最�化则返回 False。 |
关注公众å�·ã€Œç«™é•¿ä¸¥é•¿ç”Ÿã€�,在手机上阅读所有教程,éš�æ—¶éš�地都能å¦ä¹ 。本公众å�·ç”±Cè¯è¨€ä¸æ–‡ç½‘站长亲自è¿�è�¥ï¼Œé•¿æœŸæ›´æ–°ï¼Œå�šæŒ�原创。

微信扫ç �关注公众å�·
优秀文ç«
- 谈编程æ€�维的培养,åˆ�å¦è€…如何实现自我çª�ç ´ï¼ˆé�žå¸¸é‡�è¦�)
- MySQL DELETEï¼šåˆ é™¤æ•°æ�®
- 内å˜ç´§ç¼©ï¼ˆå†…å˜ç¢Žç‰‡åŒ–处ç�†ï¼‰
- Python IDLE使用方法详解(包�常用快�键)
- Goè¯è¨€å¹¶å�‘通信
- Java通过�射获�注解信�
- Django创建第一个项目
- MySQL ALTER TABLE:修改数�表
- 终æ¢çº¿ç¨‹æ‰§è¡Œï¼Œå�ƒä¸‡åˆ«è¸©è¿™ä¸ªå�‘ï¼�
- Tkinter Scale控件详解