📅  最后修改于: 2023-12-03 14:45:43.798000             🧑  作者: Mango
Pygame是一种开源Python库,用于编写电子游戏、图形用户界面和多媒体应用程序的Python模块。其中一个最重要的组件是表面(Surface)。
表面(Surface)是Pygame中最基本的二维格子,可以看作是屏幕或者图片的画布。在表面上绘制图形和文字是Pygame中最基本的操作,它支持各种颜色,允许在表面上 overlay(覆盖) 其他表面,可以进行alpha遮罩和透明度变换等。
在Pygame中,可以使用 pygame.Surface()
函数来创建表面。例如,创建一个大小为(400,400)的表面,代码如下:
import pygame
pygame.init()
size = (400, 400)
surface = pygame.display.set_mode(size)
在上面的代码中, pygame.display.set_mode()
函数返回的是屏幕表面,通过将其赋值给 surface
, 可以创建一个具有特定大小的表面。
表面是一个画布,可以在上面绘制各种图形,例如绘制一个红色的矩形和一个蓝色的圆形:
import pygame
pygame.init()
size = (400, 400)
surface = pygame.display.set_mode(size)
# 绘制红色矩形
pygame.draw.rect(surface, pygame.Color('red'), pygame.Rect(10, 10, 100, 100))
# 绘制蓝色圆形
pygame.draw.circle(surface, pygame.Color('blue'), (200, 200), 50)
# 更新显示
pygame.display.update()
上面的代码中, pygame.draw.rect()
函数用于绘制实心矩形,它有三个参数:表面、颜色和矩形范围。 pygame.draw.circle()
函数用于绘制实心圆,它有四个参数:表面、颜色、中心点坐标和半径。
表面支持alpha遮罩和透明度变换,可以使用 blit
函数实现。例如,创建一个透明的红色矩形:
import pygame
pygame.init()
size = (400, 400)
surface = pygame.display.set_mode(size)
# 创建具有透明度的表面
alpha_surface = pygame.Surface((100, 100), pygame.SRCALPHA)
pygame.draw.rect(alpha_surface, pygame.Color(255, 0, 0, 128), alpha_surface.get_rect())
# 将表面 blit 到屏幕上
surface.blit(alpha_surface, (50, 50))
# 更新显示
pygame.display.update()
在上面的代码中, SRCALPHA
选项告诉Pygame表面应该具有透明像素。 get_rect()
函数可以获取表面的矩形范围。
表面是Pygame中最基本也是最重要的组件之一,可以看作是屏幕或图片的画布,可以在上面绘制各种图形和文字。通过掌握表面的使用,可以创建出各种炫酷的图形和动画。