栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python飞机大战游戏[pygame入门]

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python飞机大战游戏[pygame入门]

pygame快速入门

文章目录
  • pygame快速入门
  • 前言
    • 1.项目准备
    • 2.游戏的第一印象
  • 一、使用pygame创建图形窗口
    • 1.目标
      • 1.1 游戏的初始化和退出
  • 二.理解游戏中的坐标系
  • 三.创建游戏主窗口
      • 1.set_mode 方法
  • 四、简单的游戏循环
  • 小结


前言 1.项目准备

安装pygame: 在pycharm或者Dos窗口下写:pip install pygame
引入pygame: import pygame

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

一、使用pygame创建图形窗口 1.目标
  1. 游戏的初始化和退出
  2. 理解游戏中的坐标系
  3. 创建游戏主窗口
  4. 简单的游戏循环
1.1 游戏的初始化和退出
  • 要使用 pygame 提供的所有功能之前,需要调用 init 方法
  • 在游戏结束前需要调用一下 quit 方法

pygame.init():导入并初始化所有 pygame 模块,使用其他模块之前,必须先调用 init 方法

pygame.quit():卸载所有 pygame 模块,在游戏结束之前调用!

import pygame

pygame.init()

# 游戏代码...

pygame.quit()
二.理解游戏中的坐标系

坐标系

  • 原点 在 左上角 (0, 0)

  • x 轴 水平方向向 右,逐渐增加

  • y 轴 垂直方向向 下,逐渐增加

  • 在游戏中,所有可见的元素 都是以 矩形区域 来描述位置的

    • 要描述一个矩形区域有四个要素:(x, y) (width, height)
  • pygame 专门提供了一个类 pygame.Rect 用于描述 矩形区域

Rect(x, y, width, height) -> Rect

提示

  • pygame.Rect 是一个比较特殊的类,内部只是封装了一些数字计算
  • 不执行 pygame.init() 方法同样能够直接使用

案例演练:

需求

  1. 定义 hero_rect 矩形描述 英雄的位置和大小
  2. 输出英雄的 坐标原点(x 和 y)
  3. 输出英雄的 尺寸(宽度 和 高度)
hero_rect = pygame.Rect(100, 500, 120, 126)

print("坐标原点 %d %d" % (hero_rect.x, hero_rect.y))
print("英雄大小 %d %d" % (hero_rect.width, hero_rect.height))
# size 属性会返回矩形区域的 (宽, 高) 元组
print("英雄大小 %d %d" % hero_rect.size)
三.创建游戏主窗口

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

pygame.display.set_mode():初始化游戏显示窗口
pygame.display.update():刷新屏幕内容显示

1.set_mode 方法
set_mode(resolution=(0,0), flags=0, depth=0) -> Surface
  • 作用 —— 创建游戏显示窗口
  • 参数
    • resolution 指定屏幕的 宽 和 高,默认创建的窗口大小和屏幕大小一致
    • flags 参数指定屏幕的附加选项,例如是否全屏等等,默认不需要传递
    • depth 参数表示颜色的位数,默认自动匹配
  • 返回值
    • 暂时 可以理解为 游戏的屏幕,游戏的元素 都需要被绘制到 游戏的屏幕 上
  • 注意:必须使用变量记录 set_mode 方法的返回结果!因为:后续所有的图像绘制都基于这个返回结果
# 创建游戏主窗口
screen = pygame.display.set_mode((480, 700))
四、简单的游戏循环
  • 为了做到游戏程序启动后,不会立即退出,通常会在游戏程序中增加一个 游戏循环
  • 所谓 游戏循环 就是一个 无限循环
  • 在 创建游戏窗口 代码下方,增加一个无限循环
    • 注意:游戏窗口不需要重复创建
# 创建游戏主窗口
screen = pygame.display.set_mode((480, 700))

# 游戏循环
while True:
    pass

小结

最近几章会更新Python飞机大战游戏相关内容,从理解到创建,再到完全实现,会分成各个章节,感兴趣的小伙伴可以关注一下.
有哪里不足或者有更好的建议,欢迎留言吐槽,有哪里不懂的小伙伴,可以私信我,我会一一答复,感谢认可,感谢支持!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/931530.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号