美文网首页python入门
046_wz_hm_项目实战——飞机大战之游戏窗口

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

作者: 王泽0106 | 来源:发表于2020-08-20 20:31 被阅读0次

    目标

    • 强化面向对象程序设计
    • 体验使用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

    相关文章

      网友评论

        本文标题:046_wz_hm_项目实战——飞机大战之游戏窗口

        本文链接:https://www.haomeiwen.com/subject/fwwdjktx.html