ps:素材内容在文末,有需要的请自取
1.安装pygame模块
1)在终端输入安装的命令语句
pip install pygame
2)确认是否安装pygame命令
python -m pygame.examples.aliens
安装成会弹出一个游戏窗口界面
2.项目准备
1)新建飞机大战的项目
2)新建一个空白的.py文件
3)导入游戏素材图片
如何利用图片开发游戏
(1)把静止的图片绘制到游戏窗口中
(2)根据用户交互或其他情况,移动这些图片,产生动画效果
(3)根据图像间是否发生重叠,判断敌机是否被摧毁等情况
3.使用pygame创建图形窗口
1)pygame的初始化和退出
(1)两个重要方法
- 初始化pygame.init()
导入并初始化所有pygame模块,才可以使用其他模块 - 游戏结束之前,调用pygame.quit()
卸载所有pygame模块 ,及时释放内存空间
2 ) pygame游戏中的坐标系(通过坐标系z知道把图片放在什么位置)
- 坐标轴
原点在左上角(0,0)
x轴水平方向向右,逐渐增加
y轴垂直方向向下,逐渐增加
所有能看到的元素以矩形描述,确定元素位置,需要知道元素的宽度和高度,确定矩形大小,知道元素 的**(x,y)确定元素左上角的位置** - 一个特殊的描述矩形区域的类pygame.Rect
-Rect(x, y, width, height)--> Rect
案例实战
定义hero_rect描述英雄的位置和大小,输出坐标和宽度高度
import pygame
hero_rect = pygame.Rect(100,500,112,125)
print("英雄的原点 %d %d" % (hero_rect.x,hero_rect.y))
print("英雄的原点 %d %d" % (hero_rect.width,hero_rect.height))
print("%d %d" % (hero_rect.x,hero_rect.y))
输出结果
3)创建游戏主窗口
创建和管理游戏窗口pygame.display
set_mode方法
- pygame.display.set_mode()
set_mode(resolution(0,0),flags=0,depth=0)-->Surface
#创建游戏窗口
screen = pygame.display.set_mode((480,700))
- pygame.display.update()用于刷新屏幕内容显示,稍后使用
4)简单的游戏循环
(1)目的:游戏程序启动后,不会立即退出,会在游戏中增加无限循环
#创建游戏的窗口480*700
screen = pygame.display.set_mode((480,700))
#简单游戏循环
while True:
pass
pygame.quit()
(2)理解图像并实现图像绘制
- 图像文件最开始是保存在磁盘第一步需要被加载到内存
1.使用pygame.image.load()
加载图像的数据
2.使用游戏屏幕的对象,调用blit方法将整个图像绘制到指定位置
3.调用pygame.display.update()
方法更新整个屏幕的显示(只有调用,才能看到绘制结果)
代码演练1–绘制背景图像
要求 - 加载background.png创建背景
- 将背景绘制在屏幕(0,0)位置
- 调用屏幕更新显示背景图像
代码
import pygame
pygame.init()
#创建游戏的窗口480*700
screen = pygame.display.set_mode((480,700))
#绘制背景图像
#1>加载图像数据(写路径)
bg = pygame.image.load("./image/background.png")
#2>blit绘制图像(背景图像,位置)
screen.blit(bg,(0,0))
#3>update更新屏幕显示,不是黑色
pygame.display.update()
#返回游戏的参考,里面参数可以为0
while True:
pass
pygame.quit()
运行结果
素材内容
链接:https://pan.baidu.com/s/1NKwrQjRHiMjRBZ8oAECfMw
提取码:gtox
复制这段内容后打开百度网盘手机App,操作更方便哦