046_wz_hm_项目实战——飞机大战之游戏窗口

目标

  • 强化面向对象程序设计
  • 体验使用pygame模块进行游戏开发

实战步骤

  1. pygame快速体验
  2. 飞机大战实战

pygame快速入门

项目准备

  1. 新建飞机大战项目
  2. 新建一个wz_001_pygame入门.py
  3. 导入游戏素材图片
    游戏的第一印象:
  • 把一些静止的图像绘制到游戏窗口中
  • 根据用户的交互或其他情况,移动这些图像,产生动画效果
  • 根据图像之间是否发生重叠,判断敌机是否被摧毁等其他情况

使用pygame创建图形窗口

游戏的初始化和退出

  • 要使用pygame提供的所有功能之前,需要调用init方法
  • 在游戏结束前需要调用quit方法
方法说明
pygame.init()导入并初始化所有pygame模块,使用其他模块之前必须先调用init方法
pygame.quit()卸载所有pygame模块,在游戏结束之前调用
初始化与退出

理解游戏中的坐标系

坐标系:

  • 原点在左上角(0,0)
  • x轴水平方向向右,递增
  • y轴垂直方向向下,递增
坐标系

在游戏中,所有可见的元素都是以矩形区域来描述位置的,要描述一个矩形区域有四个要素:(x,y)(width,height), pygame专门提供了一个类 pygame.Rect用于描述矩形区域 注:(x,y)为矩形区域左上角坐标,(width,height)为矩形区域宽和长
Rect(x, y, width, height) 创建出一个 Rect对象
Rect
提示: pygame.Rect是一个比较特殊的类,内部只是封装了一些数字计算,不执行 pygame.init()方法同样能够直接使用
案例演练

需求:

  1. 定义hero_rect矩形描述英雄的位置和大小
  2. 输出英雄的坐标原点(x和y)
  3. 输出英雄的尺寸(width和height)
使用Rect描述英雄

创建游戏主窗口

pygame专门提供了一个模块pygame.display用于创建、管理游戏窗口

方法说明
pygame.display.set_mode()初始化游戏显示窗口
pygame.display.update()刷新屏幕内容显示
set_mode(resolution = (0, 0), flags = 0, depth = 0)创建一个Surface对象

作用:创建游戏显示窗口
参数:

  • resolution指定屏幕的宽和高,默认创建的窗口大小和屏幕大小一致
  • flags参数指定屏幕的附加选项,例如是否全屏等,默认不需要传递
  • depth参数表示颜色的位数,默认自动匹配
    返回值:暂时可以理解为游戏的屏幕,游戏的元素都需要被绘制到游戏的屏幕上

注意:必须使用变量记录set_mode方法的返回结果,因为后续所有的图像绘制都基于这个返回结果

简单的游戏循环

为了做到游戏程序启动后,不会立即退出,通常在游戏程序中增加一个游戏循环,即无限循环

创建游戏窗口
注意:游戏窗口不要重复创建
2020.8.20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值