📜  pygame 表面 - Python (1)

📅  最后修改于: 2023-12-03 14:45:43.798000             🧑  作者: Mango

Pygame 表面 - Python

Pygame是一种开源Python库,用于编写电子游戏、图形用户界面和多媒体应用程序的Python模块。其中一个最重要的组件是表面(Surface)。

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遮罩和透明度变换?

表面支持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中最基本也是最重要的组件之一,可以看作是屏幕或图片的画布,可以在上面绘制各种图形和文字。通过掌握表面的使用,可以创建出各种炫酷的图形和动画。