飞机大战(python/pygame)

本文介绍了如何使用Python的Pygame库制作飞机大战游戏,包括游戏初始化、Rect类的应用、游戏窗口创建、游戏循环、图像绘制、动画原理、事件监听、精灵与精灵组的使用,以及游戏背景的交替滚动技巧。
摘要由CSDN通过智能技术生成

游戏的初始化和推出

  1. pygame是一个包,使用的时候需要使用import pygame进行导入
  2. 使用pygame的功能前,要对其进行初始化,pygame.init();所有结束的时候要退出pygame.quit()
import pygame

pygame.init()

# 游戏代码...

pygame.quit()
  1. pygame 里面绘制的图像 和元素 都是以矩形区域来描述位置的 因此有 pygame.Rect 类

Rect类

  1. pygame 中的坐标都是以 左上角,原点(0,0)为开始坐标,x轴向左增加,y轴向下增加
    在这里插入图片描述
  2. 所有的元素都是通过矩形来描述的,Rect(x, y, width, height) -> Rect,Rect类只有一些简单的数字计算,所以不需要初始化pygame.init
    在这里插入图片描述
  3. size获取的是一个元组,使用的时候要注意。可以对应输出
import pygame
# x,y,width,height
rectSize = pygame.Rect(100,100,200,300)
print(rectSize.x)
print(rectSize.y)
print(rectSize.width)
print(rectSize.height)
print(rectSize.size) #(200, 300)

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)

创建游戏主窗口

  1. 创建窗口pygame 专门提供了一个 模块 pygame.display 用于创建、管理 游戏窗口后面所绘制的内容基本上都是在这个窗口上,所以一定要有变量来接收这个窗口
    2.set_mode(resolution=(0,0), flags=0, depth=0) -> Surface ;
    resolution:设置游戏主窗口的大小,默认是全屏,参数是一个元组
    flags: 参数指定屏幕的附加选项,例如是否全屏等等,默认不需要传递
    depth:数表示颜色的位数,默认自动匹配
import pygame
pygame.init()
#创建窗口 会返回一个窗口对象 后面的图像都是要绘制在窗口对象里面的 所以要有一个值对其进行保存
screen  = pygame.display.set_mode((480,700))
# 第一个参数是设置屏幕宽高的 不设置就是全屏
# 由于python是至上而下执行的 所以  会一闪而过 通常都会设置一个游戏循环
# 游戏循环就是死循环
while True:
    pass

pygame.quit()

游戏循环

python程序是自上而下执行 ,所以一般会给予一个死循环让其运转,称为游戏循环

# 游戏循环
while True:
    pass

绘制图像对象

  • 在游戏中,能够看到的 游戏元素 大多都是 图像
  • 图像文件 初始是保存在磁盘上的,如果需要使用,第一步 就需要 被加载到内存
  • 要在屏幕上 看到某一个图像的内容,需要按照三个步骤:
    1. 使用 pygame.image.load() 加载图像的数据
    2. 使用 游戏屏幕 对象,调用 blit 方法 将图像绘制到指定位置
    3. 调用 pygame.display.update() 方法更新整个屏幕的显示
  1. pygame.blit(获取到的图像,(x,y)) :x,y就是这个时候的位置,是距离窗口远点的位置
  2. 图片的位置是与窗口的原点重合进行摆放的
  3. 没一个图像画到屏幕上 都需要对其进行update一下
    在这里插入图片描述
    要想在屏幕上看到绘制的结果,就一定要调用 pygame.display.update() 方法,但是也可以在最后的地方统一调用更新,注意这个包的屏幕的更新哦 screen只顾加 就可以;图片可能是会叠加,所以以最终绘制为准【后来者居上】
import pygame
pygame.init()

#加载背景图片 首先要有一个屏幕对象
screen = pygame.display.set_mode((480,700))

# 要添加背景图片 就必须先从内存中读取出来 优惠重新绘制的时候 是需要用原屏幕对象的
# 所以先将图片从磁盘中读取到内存
# 再绘制到屏幕中
# 最后需要对屏幕进行更新显示 这样就会出现了
img = pygame.image.load('./images/background.png')
screen.blit(img,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值