pygame作为一个第三方库,知名度较高,pygame的几种简单的用法:
- 显示文字
- 显示图片
- 显示图形
- 动画
首先不管要做什么,第一步都要配置基础配置,也就是pygame的基础框架
"""__author__ = Sun Jiankang"""
import pygame # 导入pygame
if __name__ == '__main__':
pygame.init() # 初始化
screen = pygame.display.set_mode(1000, 1000) # 设置窗口大小
screen.fill((255, 255, 255)) # 设置窗口背景颜色
pygame.display.flip() # 将内容渲染在屏幕上
while True: # 控制窗口显示,直到检测到鼠标点击点击关闭,程序才结束,并关闭窗口
for event in pygame.event.get():
if event == pygame.QUIT:
exit()
1.显示文字
整个过程均在创建好窗口后依次执行
-
创建字体对象
"""
SysFont(name,size,bold=False,italic=False)
name --> 字体名
size --> 字体大小
bold --> 是否加粗
"""
font = pygame.font.SysFont('宋体', 50)
"""
系统自带的字体有时候显示不了汉字,所以可以创建自定义字体
Font(字体文件路径, 字体大小)
"""
font = pygame.font.Font('./font/aa.ttf', 56)
-
字体渲染
"""
render(self,text,antialias,color,background = None)
text -> 要显示的文字内容(str)
antialias -> 是否平滑
color -> RGB颜色
"""
surface = font.render('你好,pyhton', True, (208, 209, 218))
-
将内容添加到窗口上
"""
blit(需要显示的对象,显示位置)
需要显示的对象 --> Surface类型的数据
显示位置 --> 坐标(x, y)
"""
screen.blit(surface, (100, 100))
-
将窗口上的内容显示出来
pygame.display.flip()
2.显示图片
(1).获取图片对象
image = pygame.image.load('./images/333.jpg')
a.获取图像大小
image_size = image.get_size()
print(image_size)
b.形变
- tranform:缩放,旋转,平移
- scale(图片对象, (缩放后的宽,缩放后的长)
image = pygame.transform.scale(image, (700, 500))
image = pygame.transform.rotate(image, 60)
- def rotozoom(旋转对象,旋转角度,缩放比例)
image = pygame.transform.rotozoom(image, 30, 2)
(2).将图片对象渲染到窗口上
screen.blit(image, (0, 0))
(3)展示在屏幕上
pygame.display.flip()
4.运用pygame绘制图形
(1)直线:
pygame.draw.line(Surface,color,star_pos,end_pos,width=1)
Surface -> 画在哪个地方
color -> 线的颜色
start_pos -> 起点
end_pos -> 终点
width -> 线的宽度
pygame.draw.line(screen, (255, 0, 0), (0, 0), (300, 300), 5)
(2)绘制一串直线(由若干点相连)
lines(划线的位置,颜色,closed,点的列表,with)
用上面方法实现矩形的绘制
pygame.draw.lines(screen, (0, 255, 255), True, [(10, 10), (200, 10), (200, 200), (10, 200)], 5)
直接绘制矩形:
pygame.draw.rect(screen, (0, 0, 255), (10,10,300,300), 2)
(3)画曲线
arc(Surface, color, Rect, start_angle, stop_angle, width = 1)
rect:(x, y, width, height)矩形
start_angle
stop_angle
from math import pi
pygame.draw.arc(screen, (0, 0, 0), (0, 0, 100, 100), pi+pi/4, pi*2-pi/4)
# 通过开始角度,和结束角度的调整,可以调整曲线的大小.(基于矩形)
(4).画圆
circle(位置, 颜色,圆心位置,半径,width)
import random
pygame.draw.circle(screen, (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)), (100, 200), 50, 5)
(5)动画
"""__author__ = Sun Jiankang"""
import pygame
if __name__ == '__main__':
pygame.init()
screen = pygame.display.set_mode((1000, 1000))
screen.fill((255, 25, 236))
x = 0
y = 0
while True:
for event in pygame.event.get():
if event == pygame.QUIT:
exit()
x += 1 # 每循环一次,圆的位置变化一次
y += 1
screen.fill((255, 25, 236)) #每变化一次,窗口的背景颜色重新填充.,然后圆的位置又发生变化,形成动画效果
pygame.draw.circle(screen, (255, 0, 0), (x, y), 80)
pygame.display.flip()