一、程序中导入pygame库
import pygame
二、初始化pygame, 做准备工作
pygame.init()
三、创建游戏窗口
set_mode(窗口大小) ——> 返回一个surface类型的对象
窗口大小对应的值是一个元组,窗口大小 == ((宽, 高))
window = pygame.display.set_mode((400, 600))
四、设置窗口标题
pygame.display.set_caption('游戏')
五、设置窗口背景颜色
fill(颜色)
颜色是一个元组,元组有三个int类型的元素,返回是0~255;分别代表R,G,B
计算机三原色: 红、绿、蓝
红色 (255, 0, 0)
绿色 (0, 255, 0)
蓝色 (0, 0, 255)
白色 (255, 255, 255)
黑色 (0, 0, 0)
window.fill((255, 255, 255))
六、显示图片
- 加载图片
image.load(图片地址) ——> 返回图片对象(surface)
image = pygame.image.load('图片地址')
- 将图片添加(渲染)到窗口上
blit(渲染对象, 坐标)
坐标: 一个元组,两个元素,分别是x坐标和y坐标
window.blit(image, (0, 0))
- 获取图片对象大小
surface类型有个对象方法: get_size() ——> 返回的是元组
# 获取窗口大小
window_width, window_height = window.get_size()
# 获取图片大小
image_width, image_height = image.get_size()
# 添加渲染
window.blit(image, (window_width - image_width, window_height - image_height))
- 图片缩放和旋转(形变)
transform.scale(缩放对象, 目标大小) ——> 返回缩放后的新对象
transform.rotozoom(旋转缩放对象, 旋转角度, 缩放比例)
# 缩放
new_image = pygame.transform.scale(image, (50, 50))
# 旋转、缩放
new_image = pygame.transform.rotozoom(image, 45, 0.8)
# 添加渲染
window.blit(new_image, (10, 250))
七、显示文字
- 创建字体对象
a. 系统字体
font.SysFont(字体名, 字体大小) ——> 返回一个字体对象
font = pygame.font.SysFont('Times', 40)
b.自定义字体
font.Font(字体文件路径, 字体大小)
font = pygame.font.Font('字体文件路径', 40)
- 根据字体创建文字对象
render(文字, True, 文字颜色) ——> 返回一个文字对象(Surface)
text = font.render('hello世界!', True, (255, 0, 0))
- 获取字体对象大小
同图片
width, height = text.get_size()
- 显示文字
blit(渲染对象, 坐标)
同图片
window.blit(text, (400 - width, 600 - height))
八、画图形
- 画线
line(画的地方, 线的颜色, 起点, 终点, 线宽=1)
pygame.draw.line(window, (0, 255, 0), (10, 10), (100, 100), 4)
- 连线
lines(画的地方, 线的颜色, 是否关闭, 点列表, 线宽=1)
point_list = [(200, 200), (250, 10), (300, 200), (150, 100), (350, 100)]
pygame.draw.lines(window, (255, 0, 0), True, point_list)
- 画圆
circle(画的地方, 线的颜色,圆心,半径, 线宽=0)
pygame.draw.circle(window, (0, 0, 0), (200, 300), 100, 0)
- 画多边形
polygon(画的地方,线的颜色, 点列表,线宽)
pygame.draw.polygon(window, (255, 0, 0), point_list, 0)
-
画矩形
rect(画的地方,线的颜色, 矩形, 线宽)
矩形(left, top, width, height) ——> 如图
pygame.draw.rect(window, (100, 20, 50), (200, 470, 100, 50), 2)
- 画弧线
arc(画的地方,线的颜色, 矩形, 起始弧度, 终止弧度, 线宽)
import math
pygame.draw.arc(window, (0, 255, 255), (10, 470, 150, 200), math.pi / 4, math.pi / 4 * 3, 5)
九、保存修改的窗口
想要对窗口内容进行的修改有效,必须执行以下操作
pygame.display.flip()
十、游戏循环
让游戏保持运行状态
while True:
# 不断检测游戏过程中是否有事件的产生
for event in pygame.event.get():
# 只有当事件产生后才会进入for循环
if event.type == pygame.QUIT: # 退出
exit() # 或 return
十一、事件
-
鼠标事件
MOUSEBUTTONDOWN —— 鼠标按下
MOUSEBUTTONUP —— 鼠标弹起
MOUSEMOTION —— 鼠标移动
鼠标事件要关注事件发生的位置: event.pos —— 鼠标的坐标,元组 -
键盘事件
KEYDOWN —— 键盘按下
KEYUP —— 键盘弹起
键盘事件要关注哪个键被按了:event.key —— 按键对应的字符的编码,数字
网友评论