飞机大战
Posted ysysyzz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了飞机大战相关的知识,希望对你有一定的参考价值。
1、准备工作
安装pygame:
$ sudo pip3 install pygame
验证是否安装:
$ python3 -m pygame.examples.aliens
游戏思路:
-
-
根据 用户的交互 或其他情况,移动 这些图像,产生动画效果
-
根据 图像之间 是否发生重叠,判断 敌机是否被摧毁 等其他情况
2、初始化和退出
在游戏结束前需要调用一下 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.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(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、
以上是关于飞机大战的主要内容,如果未能解决你的问题,请参考以下文章