飞机大战

Posted ysysyzz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了飞机大战相关的知识,希望对你有一定的参考价值。

1、准备工作

安装pygame:

$ sudo pip3 install pygame

验证是否安装:

$ python3 -m pygame.examples.aliens

游戏思路:

  • 把一些 静止的图像 绘制到 游戏窗口

  • 根据 用户的交互 或其他情况,移动 这些图像,产生动画效果

  • 根据 图像之间 是否发生重叠,判断 敌机是否被摧毁 等其他情况

 

2、初始化和退出

要使用 pygame 提供的所有功能之前,需要调用 init 方法

在游戏结束前需要调用一下 quit 方法

方法说明
pygame.init() 导入并初始化所有 pygame 模块,使用其他模块之前,必须先调用 init 方法
pygame.quit() 卸载所有 pygame 模块,在游戏结束之前调用!
import pygame

pygame.init()

print("游戏内容")

pygame.quit()

 

3、游戏中的坐标系

原点 在 左上角 (0, 0)

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

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

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

 

要描述一个矩形区域有四个要素:(x, y) (width, height)

pygame 专门提供了一个类 pygame.Rect 用于描述 矩形区域:

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

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

描述英雄:

import pygame

hero_rect = pygame.Rect(100, 500, 120, 125)

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)

 

4、创建游戏主窗口

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

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

set_mode 方法:set_mode(size=(0,0), flags=0, depth=0) -> Surface

  • 作用 —— 创建游戏显示窗口

  • 参数

    • size 指定屏幕的 ,默认创建的窗口大小和屏幕大小一致

    • flags 参数指定屏幕的附加选项,例如是否全屏等等,默认不需要传递

    • depth 参数表示颜色的位数,默认自动匹配

  • 返回值

    • surface,暂时 可以理解为 游戏的屏幕游戏的元素 都需要被绘制到 游戏的屏幕

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

import pygame

pygame.init()

# 创建游戏窗口,并指定屏幕的宽高
screen = pygame.display.set_mode((480, 700))

# 游戏循环,保证窗口不会因为代码继续向下执行而退出
while True:
    pass

pygame.quit()

 

5、

 

以上是关于飞机大战的主要内容,如果未能解决你的问题,请参考以下文章

如何用用python写飞机大战?

怎么用python学飞机大战?

全民飞机大战第二十三关怎么过 过关攻略

飞机大战项目

canvas飞机大战

飞机大战